为什么“chroot”从未在 Mac OS X 上使用过?

mra*_*ray 10 unix command-line-interface usage chroot mac-osx

我已经使用 Mac 25 年了,从 OS X 10.0 开始使用“UNIX”......但我从来没有真正考虑过 chroot,也从来没有真正需要或想要......

这是一个简单的问题,但是……在什么情况下人们会选择在 Mac 上使用“chroot”?它确实是 BSD 时代的一个内置函数,但我从未听说过它被使用过……该功能是另一个命令行或系统级工具的一部分,不需要 chroot 吗?如果是,那么等效的功能是什么?如果没有,为什么它似乎从未被使用、引用或需要?

Gil*_*il' 14

chroot 有两大类用途(维基百科文章有更详细的介绍):

  • 隔离应用程序,为其提供文件系统的受限视图。例如,这通常用于公共 FTP 服务器,以确保即使服务器软件中存在错误,它们也无法在公共区域之外提供文件。由于两个原因,此用例越来越不常见。首先,chroot 没有提供太多的隔离,服务器中的一个漏洞可能允许攻击者以访问文件以外的许多其他方式进行破坏。其次,提供更强隔离的虚拟机已经变得更便宜,而且通常更容易设置,因此它们是自然的选择。
  • 在具有相同内核但不同库的不同操作系统中运行软件。例如,正如 David Cournapeau 所建议的那样,如果您正在开发软件,安装了很多额外的东西,并且想要确保您的软件不依赖于那些额外的东西,您可以在 chroot 中测试它,只有一个最少安装。或者(但我认为这对于 OSX 系统来说并不常见)您可能会运行不同的 OS 版本——例如,我有一个 64 位 Linux 系统,它有一个 32 位发行版,可通过 chroot 访问,对于那些罕见的时候我需要运行一个不能直接在主系统上运行的 32 位应用程序。

这两种用例都相当专业。Chroot 对大多数人没用;它存在是因为它对某些人有用,而且实施起来非常便宜。


Dav*_*eau 7

我在 mac os x 上使用 chroot 来测试一些软件,或者测试我参与的项目的打包(例如,在我使用 10.6 时测试 10.4 上的安装)。

  • 你能举例说明如何使用它吗? (3认同)