chroot 和 jail 之间的区别

chroot 和 jail 之间的区别

我读过这个教程 -https://help.ubuntu.com/community/BasicChroot- 我的理解是,chroot 是改变的过程,/而创建的新受限环境是“监狱”。但有些人说我错了,chroot 和监狱是完全不同的两件事。

有人能用简单的术语向我解释一下其中的区别吗?

答案1

简短的回答是“你们都正确”——

Achroot'ed环境通常被称为“chroot jail”。它基本上限制了一组进程的视图,使它们认为指定的目录是文件系统根目录。

这不应与 FreeBSD 的jail功能,它是强化版的 chroot(具有许多附加功能,比简单的 chroot 提供了更多的隔离性chroot)。


为了清楚起见,最好将chrooted 环境称为“chrooted 环境”(或使用完整短语“chroot jail”)来区分它们 - 尤其是在谈论 FreeBSD 系统时。

答案2

Jail 一词源自 FreeBSD 世界,指的是限制用户访问系统的更严格方式,尽管 chroot 在 FreeBSD 中作为一种单独的机制存在。它类似于(按分离级别排序):

Chroot < 操作系统级虚拟化:(FreeBSD 的 Jail ≤ Linux OpenVZ)< 半虚拟化:XEN

答案3

我想说的是,“监狱”是一个通用术语,而“chroot”不是。chroot 只是限制进程访问的几种可能性之一。不过,我从未在其他情况下听说过“监狱”。您可以使用 AppArmor、SELinux 等来达到类似的效果,但“AppArmor 监狱”似乎是一个不常见的术语。另一方面,安全性并不是使用 chroot 的唯一原因。虽然效果可能相同,但在某些情况下,当目的不是安全性而是针对某个进程的特殊配置时,谈论“chroot 监狱”可能没有什么意义。

答案4

“chroot” 表示“从这里启动文件系统根目录”,并且具有超出“监狱”的功能,例如从 LiveCD 访问/修复损坏的操作系统;它也恰好是“在 Linux 中建立监狱的方式”。

相关内容