Chroot

為什麼我需要使用 chroot

  • April 14, 2019

這個問題chroot-jail-what-is-it-and-how-do-i-use-it指的是什麼是和如何使用chroot

我不明白的是為什麼我需要使用chroot. 我理解它的作用,但我想不出我需要使用它的情況,因為它不是安全機製或沙箱,因為答案指出“你不應該chroot用作安全措施以防止程序修改模擬文件系統之外的文件”。

具體來說,為什麼某個程序需要映射一個子目錄作為根文件系統?

使用 chrooted 環境有很多原因,您可以使用它來保留一個程序的不同版本,您可以使用它來模擬特定環境以測試某些功能,創建與您的主系統不同的系統映像一等

維基百科可以告訴你更多關於 chroot 監獄及其用法的資訊。

從那裡:

測試和開發:可以在 chroot 中為軟體設置測試環境,否則在生產系統上部署風險太大。

依賴關係控制:軟體可以在僅填充其預期依賴關係的 chroot 中開發、建構和測試。這可以防止由於開發人員建構安裝了不同程序庫集的項目而導致的某些類型的連結偏差。

兼容性:遺留軟體或使用不同 ABI 的軟體有時必須在 chroot 中執行,因為它們的支持庫或數據文件可能會在名稱或連結上與主機系統的名稱或連結發生衝突。

恢復:如果系統無法啟動,在從備用根文件系統(例如安裝媒體或 Live CD)啟動後,可以使用 chroot 移回損壞的環境。

特權分離:允許程序將打開的文件描述符(用於文件、管道和網路連接)攜帶到 chroot 中,這可以通過使工作文件不必將工作文件留在 chroot 目錄中來簡化監獄設計。這也簡化了在沙箱中執行特權程序的潛在易受攻擊部分的常見安排,以便先發製人地遏制安全漏洞。請注意,chroot 不一定足以包含具有 root 權限的程序。

引用自:https://unix.stackexchange.com/questions/340297