是否可能在 Linux 下使用虚拟 /proc 文件系统在 chroot 中运行进程?

是否可能在 Linux 下使用虚拟 /proc 文件系统在 chroot 中运行进程?

我需要在具有虚拟 /proc 文件系统的 chroot 中运行一个进程,因此该进程无法访问在同一主机上运行的其他进程。该进程必须在 root 下运行,并且对 chroot 中的文件具有完全访问权限。此外,对文件系统的任何更改都必须保留在 chrooted 目录中。

这可能吗?

答案1

可以在 chroot 环境中挂载 /proc - 参见这个答案了解更多信息。

我担心该程序无法访问其他进程,因为大部分(如果不是全部)信息都可以通过 /proc 访问(/proc/[pid 号码] 将允许您访问此信息)。

目前还不清楚您所说的“对文件系统的更改”是什么意思,但是如果这些更改是对文件系统的更改(不包括特殊位,如 /proc、/dev/ 等),那么这些更改将保留在 chroot 中。

答案2

您可以使用 Linux 命名空间来实现这一点。容器(Docker、lxc)就是由这些命名空间组成的。man unshare是您的朋友。请注意,如果您使用不当,攻击者很容易逃脱chroot。使用前请先阅读本文。您已收到警告。

相关内容