我想validation在Linux发行版中的chroot和默认程序的安全性(比如Ubuntu)。
例如:我build立了监狱目录“A”。 从发行版的每个Linux二进制文件被放置在“A”,ACL是相同的。
例如,A / usr / bin包含所有可执行文件/ usr / bin,A / bin包含/ bin等的exe文件。
假设没有其他文件被写入。
一个不可信任的用户被放入chroot监狱“A”,并作为一些随机的uid。
问题:这个环境是否像一个不受欢迎的环境一样安全? 他是不可能获得root权限或者打开监狱的? (禁止Linux root的攻击)
例如,我最初担心现在用户可以写他自己的sudoers文件。 幸运的是,sudovalidationsudoers是由root拥有的。 每一个标准的setuid'd程序这个小心吗?
我不能具体回答你的问题,所以如果你喜欢,请将我改掉。 然而,在我以前和很多人之后,很多人都会向你确认一个明显的例子:chroot jail并不是一个安全机制(你谈到了Linux; BSD jail是不同的,我不是在谈论它们)。 引用一位非常有名的内核黑客Alan Cox,他们不是一个安全机制 。 说实话,我只看到/听到/看到成功使用chroot打包build设和testing环境。 这是它发光的地方。 它并不是一个好的安全平台,特别是如果孤立的话。
现在,人们谈论Linux容器与cgroups和其他更高级的虚拟化解决scheme,如OpenVZ或Linux VServer 。 我并不是说他们肯定是答案,但是性能下降的影响是主机和来宾虚拟机之间有良好的隔离。 我希望这是有用的。
我build议看一下chroot进程的一般限制 ,以及像OpenVZ这样的项目如何限制chroot jail或虚拟化环境中的资源使用来回答你的“是不可能的”问题。
如果只是简单地尝试在整个系统的副本中手动chroot用户,并在其中修改权限,并试图使主系统的安全更新保持最新状态,则不会有相同的安全标准。