Loading AI tools
在類Unix系統中變更外顯根目錄的操作 来自维基百科,自由的百科全书
chroot是起源於Unix系統的一個操作,作用於正在執行的行程和它的子行程,改變它外顯的根目錄。一個執行在這個環境下,經由chroot設定根目錄的程式,它不能夠對這個指定根目錄之外的檔案進行存取動作,不能讀取,也不能更改它的內容。chroot這一特殊表達可以指chroot(2)系統呼叫或chroot(8)應用程式。
此條目翻譯品質不佳。 (2021年1月22日) |
由chroot創造出的那個根目錄,叫做「chroot監牢」(chroot jail,或chroot prison)。
1979年,在開發Version 7 Unix時,chroot系統呼叫首次問世。1982年3月18日,在4.2BSD發布前17個月,比爾·喬伊(Bill Joy)將chroot機制移植到BSD系統上,主要用於測試安裝和構建系統。
1991年,威廉·齊斯韋克(William Cheswick)開發出第一個蜜罐程式,來監視入侵駭客的行動。他使用了chroot來進行實作,這是chroot最早被用於開發程式的先例,也因此,chroot創造出的根目錄空間,之後被人稱為軟體監牢(chroot jail)。
2000年,FreeBSD團隊,將原本chroot機制,匯入虛擬化技術的概念,開發了新的jail系統命令,伴隨著FreeBSD 4.0版一同發布。
2004年,因為駭客開發出許多可以破解chroot機制的方法,出現了jailbreak這個術語。
2005年,昇陽電腦在Solaris系統上開發出Solaris Containers,稱它是吃了類固醇的chroot(chroot on steroids)。
2006年,Linux核心中開發出cgroups。2007年,被加到Linux 2.6.24版核心中。2008年,基於cgroups,開發出LXC,以及Docker。2013年被加入Linux 3.8版中。
應用chroot,可以建立並執行一個隔離的虛擬軟體系統拷貝。這對於以下應用是十分有用的:
chroot機制的設計中,並不包括抵抗特權使用者(root)的蓄意篡改。在大多數的系統中,chroot環境沒有設計出適當的堆疊,所以一個在chroot下執行的程式,可能會通過第二次chroot來獲得足夠權限,逃出chroot的限制。為了減輕這種安全漏洞所帶來的風險,在使用chroot後,在chroot下執行的程式,應該儘快放棄root權限,或是改用其他機制來替代,例如FreeBSD jail。在某些作業系統中,例如FreeBSD,已經採取預防措施,來防止第二次chroot的攻擊[1]。
一些Unix系統提供擴充的chroot機制(一般稱為作業系統層虛擬化)用於解決上述部分限制。包括:
在chroot環境中使用圖形介面是可能的,參見以下幾個方案:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.