fbpx
维基百科

chroot

chroot是起源于Unix系统的一个操作,作用于正在运行的进程和它的子进程,改变它外顯的根目录。一個運行在這個環境下,經由chroot設定根目錄的程式,它不能夠對這個指定根目錄之外的檔案進行存取動作,不能讀取,也不能更改它的內容。chroot这一特殊表达可以指chroot(2)系统调用或chroot(8)应用程序。

由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建立一個測試環境,用來測試軟體。這可以減少將軟體直接布署到整個生產系統中可能造成的風險。
依赖控制
可以在chroot建立的環境下,進行軟體開發,組建以及測試,只保留這個程式需要的軟體依賴。這可以避免在系統中預先安裝的各種軟體庫,影響到開發,造成軟體開發者在組建軟體時,可能遇到一些連結衝突。
兼容性
早期遗留软件或使用不同应用二进制接口(ABI)的软件,因为它们提供的軟體庫和宿主机的库之間,可能發生名称或链接冲突,可以在chroot环境下运行,以保持系統安全。
修复
当一个系统不能启动时,可以使用chroot,先從另一個根檔案系統(比如從安裝媒體,或是Live CD)下開機,之後再回到受損的環境中,重新修正系統。
特权分离
將允許開啟檔案描述子(例如檔案,管線或是網路連線)的程式放到chroot下執行,不用特地將工作所需的檔案,放到chroot路徑底下,這可以簡化軟體監獄的設計。chroot簡化了安全設計,可以創造出一個沙盒環境,來執行一個有潛在危險的特權程式,以先期防禦可能的安全漏洞。但值得注意的是,chroot沒有足夠能力去防禦一個擁有root特權的行程造成危害。

限制 编辑

chroot机制的設計中,並不包括抵抗特权用戶(root)的蓄意篡改。在大多数的系统中,chroot環境沒有設計出適當的堆疊,所以一個在chroot下執行的程式,可能會透過來獲得足夠權限,逃出chroot的限制。为了减轻这种安全漏洞所带来的风险,在使用chroot后,在chroot下執行的程序,應該盡快放棄root权限,或是改用其他机制來替代,例如FreeBSD jail。在某些作業系統中,例如FreeBSD,已經采取预防措施,來防止第二次chroot的攻擊[1]

  • 在支持设备节点的文件系统中,一个在chroot中的root用户仍然可以创建设备节点和挂载在chroot根目录的文件系统;尽管,chroot机制不是被打算用来阻止低特权用户级访问系统设备。
  • 在启动时,程序都期望能在某些预设位置找到scratch space,配置文件,设备节点共享库。为了使chroot能够正常启动,在运行chroot的目录必须包含这些最基本的文件,这使得chroot难以作为一般的沙箱来使用。
  • 只有root用户可以执行chroot。这是为了防止用户把一个setuid的程序放入一个特制的chroot监牢(例如一个有着假的/etc/passwd/etc/shadow文件的chroot监牢)由于引起提权攻击。
  • chroot不是为限制资源的使用而设计,如I/O,带宽,磁盘空间或CPU时间。大多数Unix系统都没有以完全文件系统为导向,以即给可能通过网络和过程控制,通过系统调用接口来提供一个破坏chroot的程序。

一些Unix系统提供扩展的chroot机制(一般称为作業系統層虛擬化)用于解决上述部分限制。包括:

在chroot中使用图形界面 编辑

在chroot环境中使用图形界面是可能的,参见以下几个方案:

  • xhost
  • 使用内置像Xnest这样的X服务,或现代一点的Xephyr(或者在监牢中启动真正的X服务)
  • 通过开启X11转发(X11 forwarding)的 SSH连接到chroot中(ssh -X)
  • 当一个X服务启动是设置为不监听tcp端口或没有可用的SSH服务器时,使用openroot
  • 通过一个X11 VNC服务,链接到在外环境的VNC客户端

参见 编辑

参考 编辑

  1. ^ 存档副本. [2011-01-25]. (原始内容于2019-09-24). 

外部链接 编辑

  • chroot(2): change root directory – FreeBSD系统调用(System Calls)手册页
  • chroot(8): change root directory – FreeBSD系统管理(System Manager's)手册页
  • chroot(2): change root directory – Linux程序员手册页 – 系统调用(System Calls)
  • openroot - an extended chroot with X11 access, /dev & /media automounting & more.(页面存档备份,存于互联网档案馆

chroot, 此條目翻譯品質不佳, 2021年1月22日, 翻譯者可能不熟悉中文或原文語言, 也可能使用了機器翻譯, 請協助翻譯本條目或重新編寫, 并注意避免翻译腔的问题, 明顯拙劣的翻譯請改掛, href, template, html, class, redirect, title, template, href, wikipedia, html, class, redirect, title, wikipedia, 提交刪除, 是起源于unix系统的一个操作, 作用于正在运行的进程和它的子进程, 改变它外顯. 此條目翻譯品質不佳 2021年1月22日 翻譯者可能不熟悉中文或原文語言 也可能使用了機器翻譯 請協助翻譯本條目或重新編寫 并注意避免翻译腔的问题 明顯拙劣的翻譯請改掛 a href Template D html class mw redirect title Template D d a a href Wikipedia CSD html G13 class mw redirect title Wikipedia CSD G13 a 提交刪除 chroot是起源于Unix系统的一个操作 作用于正在运行的进程和它的子进程 改变它外顯的根目录 一個運行在這個環境下 經由chroot設定根目錄的程式 它不能夠對這個指定根目錄之外的檔案進行存取動作 不能讀取 也不能更改它的內容 chroot这一特殊表达可以指chroot 2 系统调用或chroot 8 应用程序 由chroot創造出的那个根目录 叫做 chroot监狱 chroot jail 或chroot prison 目录 1 历史 2 应用 3 限制 4 在chroot中使用图形界面 5 参见 6 参考 7 外部链接历史 编辑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建立一個測試環境 用來測試軟體 這可以減少將軟體直接布署到整個生產系統中可能造成的風險 依赖控制 可以在chroot建立的環境下 進行軟體開發 組建以及測試 只保留這個程式需要的軟體依賴 這可以避免在系統中預先安裝的各種軟體庫 影響到開發 造成軟體開發者在組建軟體時 可能遇到一些連結衝突 兼容性 早期遗留软件或使用不同应用二进制接口 ABI 的软件 因为它们提供的軟體庫和宿主机的库之間 可能發生名称或链接冲突 可以在chroot环境下运行 以保持系統安全 修复 当一个系统不能启动时 可以使用chroot 先從另一個根檔案系統 比如從安裝媒體 或是Live CD 下開機 之後再回到受損的環境中 重新修正系統 特权分离 將允許開啟檔案描述子 例如檔案 管線或是網路連線 的程式放到chroot下執行 不用特地將工作所需的檔案 放到chroot路徑底下 這可以簡化軟體監獄的設計 chroot簡化了安全設計 可以創造出一個沙盒環境 來執行一個有潛在危險的特權程式 以先期防禦可能的安全漏洞 但值得注意的是 chroot沒有足夠能力去防禦一個擁有root特權的行程造成危害 限制 编辑chroot机制的設計中 並不包括抵抗特权用戶 root 的蓄意篡改 在大多数的系统中 chroot環境沒有設計出適當的堆疊 所以一個在chroot下執行的程式 可能會透過第二次chroot來獲得足夠權限 逃出chroot的限制 为了减轻这种安全漏洞所带来的风险 在使用chroot后 在chroot下執行的程序 應該盡快放棄root权限 或是改用其他机制來替代 例如FreeBSD jail 在某些作業系統中 例如FreeBSD 已經采取预防措施 來防止第二次chroot的攻擊 1 在支持设备节点的文件系统中 一个在chroot中的root用户仍然可以创建设备节点和挂载在chroot根目录的文件系统 尽管 chroot机制不是被打算用来阻止低特权用户级访问系统设备 在启动时 程序都期望能在某些预设位置找到scratch space 配置文件 设备节点和共享库 为了使chroot能够正常启动 在运行chroot的目录必须包含这些最基本的文件 这使得chroot难以作为一般的沙箱来使用 只有root用户可以执行chroot 这是为了防止用户把一个setuid的程序放入一个特制的chroot监牢 例如一个有着假的 etc passwd和 etc shadow文件的chroot监牢 由于引起提权攻击 chroot不是为限制资源的使用而设计 如I O 带宽 磁盘空间或CPU时间 大多数Unix系统都没有以完全文件系统为导向 以即给可能通过网络和过程控制 通过系统调用接口来提供一个破坏chroot的程序 一些Unix系统提供扩展的chroot机制 一般称为作業系統層虛擬化 用于解决上述部分限制 包括 AIX中的Workload Partitions Solaris中的Containers Linux下的Linux VServer FreeVPS和OpenVZ FreeBSD 中的Jails NetBSD和OpenBSD中的Sysjails DragonFly BSD中的DragonFly BSD jails在chroot中使用图形界面 编辑在chroot环境中使用图形界面是可能的 参见以下几个方案 xhost 使用内置像Xnest这样的X服务 或现代一点的Xephyr 或者在监牢中启动真正的X服务 通过开启X11转发 X11 forwarding 的 SSH连接到chroot中 ssh X 当一个X服务启动是设置为不监听tcp端口或没有可用的SSH服务器时 使用openroot 通过一个X11 VNC服务 链接到在外环境的VNC客户端参见 编辑Unix实用程序列表 操作系统级虚拟化 沙盒 计算机安全 sudo参考 编辑 存档副本 2011 01 25 原始内容存档于2019 09 24 外部链接 编辑chroot 2 change root directory FreeBSD系统调用 System Calls 手册页 chroot 8 change root directory FreeBSD系统管理 System Manager s 手册页 chroot 2 change root directory Linux程序员手册页 系统调用 System Calls openroot an extended chroot with X11 access dev amp media automounting amp more 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Chroot amp oldid 77875029, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。