Chroot并不是很好的select,正如很多地方所说的,由于root进程可以轻松退出chroot
有没有办法在基于* nix的系统中完全隔离用户空间?
你问“ 如何完全隔离内核进程的用户进程 ”。 答案是你不能,也不应该; 内核为用户空间提供了许多基本的服务。 任何无法与内核通信的用户进程都不能使用虚拟内存,文件系统,networking,进程间通信或内核是门卫和女仆的任何其他服务 – 因此除了微不足道的数字计算外,它不能做任何事情。
chroot ,集装箱化和虚拟化为环境提供了越来越高的隔离级别。 每个人都有不同的成本,优点和缺点,他们不应该彼此混淆 – 或者是物理上的分离。 你想要的将取决于你的需求,通常从威胁模型和由此产生的分析。 因此,决定要保护什么,从谁开始,并考虑提出一个新的问题。
但是对这个问题的答案是: 不,也是有原因的 。
编辑 :我明白你想要什么,但你不能拥有它:内核是有一个很好的理由。 你可以减less一个子内核守护进程的内核风险(最不可能的特权,特权分离,SELinux或类似的MAC,chroot / containerisation限制FS访问等),但最终的用户空间必须能够与内核,内核也是bug,而这些bug有时可以被利用。 跟上你的补丁!
我们都尽我们所能,然后希望最好。 如果你最好的不够好,你需要得到专业的帮助。