chroot和jail的区别

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

有人能用简单的术语来解释我的区别吗?

监狱一词来源于FreeBSD世界,指的是限制用户访问系统的更严格的方式,尽pipeFreeBSD中的chroot作为一个单独的机制存在。 这是类似的(按照分离的程度sorting):

Chroot <OS级虚拟化:( FreeBSD的Jail≤Linux OpenVZ)<准虚拟化:XEN

我会说“监狱”是一个通用的术语,而“chroot”则不是。 chroot只是限制进程访问的几种可能性之一。 尽pipe在另一方面我从来没有听说过“监狱”。 您可以使用AppArmor,SELinux等达到类似的结果,但“AppArmor监狱”似乎是一个罕见的术语。 另一方面,安全性不是使用chroot的唯一原因。 虽然效果可能是一样的,但在目标不是安全而是特定过程的特殊configuration的情况下,在某些情况下说“chroot监狱”可能是没有意义的。

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

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

chroot编辑环境通常被称为“chroot监狱”。 它基本上限制了一组进程的视图,所以他们认为指定的目录是文件系统根目录。

这不应该与FreeBSD的jailfunction相混淆,这是一个类固化的chroot(有很多额外的function提供比简单的chroot更多的隔离)。


为了清楚起见,最好将chroot ed环境称为“chroot环境”(或使用完整的短语“chroot jail”)来区分它们 – 特别是在讨论FreeBSD系统时。