Mac-Osx
為什麼 Mac OS X 上從未使用過“chroot”?
我使用 Mac 已經 25 年了,從 OS X 10.0 開始使用“UNIX”……但我從來沒有真正考慮過 chroot,也從來沒有真正需要或想要……
這是一個簡單的問題,但是……在什麼情況下會選擇在 Mac 上使用“chroot”?它確實是 BSD 時代的內置功能,但我從未聽說過它被使用…該功能是否是另一個命令行或系統級工具的一部分,可以避免 chroot 的需要?如果是這樣,等效功能是什麼?如果不是,為什麼它似乎從未被使用、引用或需要?
chroot 有兩種主要用途(維基百科文章更詳細):
- 隔離應用程序,為其提供文件系統的受限視圖。這通常用於公共 FTP 伺服器,例如,以確保即使伺服器軟體中存在錯誤,它們也無法在公共區域之外提供文件。由於兩個原因,這種案例越來越少。首先,chroot 沒有提供太多隔離,伺服器中的漏洞可能允許攻擊者通過訪問文件以外的許多其他方式進行破壞。其次,確實提供更強隔離的虛擬機變得更便宜,而且通常更容易設置,因此它們是自然的選擇。
- 在具有相同核心但不同庫的不同作業系統中執行軟體。例如,正如 David Cournapeau 所建議的那樣,如果您正在開發軟體,安裝了很多額外的東西,並且想要確保您的軟體不依賴於這些額外的東西,您可以在 chroot 中測試它,只需要一個最少的安裝。或者(但我認為這對於 OSX 系統來說並不常見)你可能會執行不同的作業系統版本——例如,我有一個 64 位 Linux 系統,它有一個 32 位發行版,可以通過 chroot 訪問,在我很少見的時候需要執行一個不能直接在主系統上執行的 32 位應用程序。
這兩種案例都相當專業。Chroot 對大多數人來說毫無用處;它在那裡是因為它對某些人有用,而且實施起來非常便宜。