为什么我需要使用chroot


13

这个问题chroot-jail是什么以及我如何使用它指的是什么以及如何使用chroot

我不明白的是为什么我需要使用chroot。我了解它的作用,但是鉴于它不是安全机制或沙箱,因此我想不出何时需要使用它的情况,答案指出“您不应该将其chroot用作安全性”措施以防止程序修改模拟文件系统外部的文件”。

具体来说,为什么某个进程需要将子目录映射为rootfilesystem?


在一个文件系统中拥有更多分发。
Ipor Sircer '17

这意味着什么?
亚历山德鲁·伊里米亚

1
尽管这可能无法阻止坚定的黑客闯入监狱,但它会使难度加大,并且几乎可以肯定会防止意外访问。
Barmar

如果要从头开始构建新的操作系统,则可以使用它来建立独立于主机文件系统的全新环境。看一下LFS项目(从零开始的Linux)
chenchuk,

Answers:


13

使用chroot环境的原因很多,可以使用它来保留一个程序的不同版本,可以使用它来模拟特定的环境以测试某些功能,以创建与主系统不同的系统映像。一等

Wikipedia可以告诉您有关chroot监狱及其用法的更多信息。

从那里:

测试和开发:可以在chroot中为软件创建测试环境,否则该软件在生产系统上部署风险太大。

依赖关系控制:只能在具有预期依赖关系的chroot中开发,构建和测试软件。这可以防止由于开发人员构建安装了不同程序库集的项目而导致的某些链接偏斜。

兼容性:传统软件或使用其他ABI的软件有时必须在chroot中运行,因为其支持库或数据文件的名称或链接可能与主机系统的名称或链接冲突。

恢复:如果使系统无法启动,则从备用根文件系统(例如,从安装介质或Live CD)引导后,可以使用chroot将其移回到损坏的环境中。

特权分离:允许程序将打开的文件描述符(用于文件,管道和网络连接)携带到chroot中,这可以通过不必在chroot目录中保留工作文件来简化监狱设计。这还简化了在沙箱中运行特权程序的潜在易受攻击部分的常见安排,以便抢先遏制安全漏洞。请注意,chroot不一定足以包含具有root特权的进程。


3
基本上,如果您正在运行一组程序,希望从开始就在其中读写特定的内容/,但又不想弄乱现有系统,那么即使以root身份运行chroot也很有用(这是毫无意义的)从安全角度而言)。只要您相信程序是有用的,它就可以充当“重定向器”。
LawrenceC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.