为什么我需要使用 chroot

Ale*_*iea 13 chroot

这个问题chroot-jail-what-is-it-and-how-do-i-use-it指的是什么以及如何使用chroot.

我不明白的是为什么我需要使用chroot. 我明白它的作用,但我想不出需要使用它的情况,因为它不是安全机制或沙箱,正如答案指出的那样“你不应该将它chroot用作安全防止程序修改模拟文件系统之外的文件的措施”。

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

小智 14

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

维基百科可以告诉你更多关于 chroot jails 及其用法的信息。

从那里:

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

依赖控制:可以在仅填充其预期依赖项的 chroot 中开发、构建和测试软件。这可以防止由于开发人员构建项目而安装不同的程序库集而导致的某些类型的链接偏差。

兼容性:遗留软件或使用不同 ABI 的软件有时必须在 chroot 中运行,因为它们的支持库或数据文件可能会与主机系统的名称或链接发生冲突。

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

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

  • 基本上,如果您正在运行一组想要从 `/` 开始读取/写入特定内容的程序,但您不想弄乱现有系统,那么即使以 root 身份运行,chroot 也很有用(这是当从安全角度来看毫无意义时)。它充当“重定向器”,只要您相信该程序是有用的。 (3认同)