LXC中的chroot转义保护是如何实现的?有没有保证没有办法从lxc容器逃脱到主机?
我知道,linux-vserver使用chroot- part来实现这一点,但它不是普通内核的一部分。
发布于 2014-05-28 19:39:11
您是否看到了“应用挂载名称空间”文章中包含的信息:http://www.ibm.com/developerworks/library/l-mount-namespaces/
在"Per-user root“部分下:
“这种方法的一个缺点是可以转义普通的chroot(),尽管需要一些特权。例如,当使用包括CAP_SYS_CHROOT在内的某些功能执行时,程序的源代码突破chroot() (请参阅参考资料)将导致程序转义到真正的文件系统根目录中。根据每个用户文件系统树的实际动机和使用情况,这可能是一个问题。
我们可以通过在私有名称空间中使用pivot_root(2)来解决这个问题,而不是使用chroot(2)将登录的根目录更改为/share/USER/root。chroot()只是将进程的文件系统根目录指向指定的新目录,而pivot_root()将指定的new_root目录(必须是挂载目录)与其挂载点分离,并将其附加到进程根目录。因为挂载树没有新根的父级,所以不能像chroot()那样诱使系统进入它。我们将使用pivot_root()方法。“
简而言之,我见过将pivot_root与mnt名称空间结合使用来缓解这种担忧。
https://stackoverflow.com/questions/23882087
复制相似问题