chroot

✍ dations ◷ 2025-09-08 09:09:42 #Unix进程和任务管理相关软件,虚拟化软件,Linux内核功能

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机制的设计中,并不包括抵抗特权用户(root)的蓄意篡改。在大多数的系统中,chroot环境没有设计出适当的堆栈,所以一个在chroot下运行的程序,可能会透过第二次chroot来获得足够权限,逃出chroot的限制。为了减轻这种安全漏洞所带来的风险,在使用chroot后,在chroot下运行的程序,应该尽快放弃root权限,或是改用其他机制来替代,例如FreeBSD jail。在某些操作系统中,例如FreeBSD,已经采取预防措施,来防止第二次chroot的攻击。

一些Unix系统提供扩展的chroot机制,一般称为操作系统层虚拟化—至少解决其中的一些限制。包括:

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

相关

  • 叠氮氯霉素叠氮氯霉素(英语:Azidamfenicol)是一种酰胺醇类抗生素,其结构与氯霉素相似。叠氮氯霉素只能外用,其制品(如滴眼液、软膏等)用于治疗敏感细菌感染。医学导航:病菌细菌(分类)gr+f/gr+a(t)/gr
  • 直流电直流电(Direct current),通常情况下通过整流器等电子元件使电流只向一个方向流动,将其从交流电转化为直流电。第一个商业化的电力传输是由托马斯·爱迪生在十九世纪后期开发的11
  • 听障奥林匹克运动会听障奥林匹克运动会(英文:Deaflympics),简称听障奥运、听奥,又称听障林匹克运动会、听障运动会,原名世界聋人运动会,是国际听障运动总会(International Committee of Sports for the
  • 反人类危害人类罪或反人类罪,旧译违反人道罪,于2002年7月1日生效的《国际刑事法院罗马规约》将该罪名中文译名确定为危害人类罪。规约中的定义为“是指那些针对人性尊严极其严重的侵
  • 产前出血产前出血(Antepartum bleeding)是指在妊娠过程中,孕龄超过20至24周之后,一直到分娩前的阴部出血产前出血和胎儿体重减轻有关系。若在怀孕16周之前使用乙酰水杨酸以预防妊娠毒血
  • 双城双城一般指由两个相邻城市组成的都市。与一般相邻城市的主要分别,在于市区街道相连合一,且共享许多资源,例如:机场、铁路、港口等。与卫星城市的概念不同,双城需互相依赖,而卫星城
  • 后王朝时期后期埃及是古埃及本土统治者在位的最后一个兴盛时期。在第三中间期,埃及陆续受努比亚第25王朝及崛起的新亚述帝国统治,地方总督普萨美提克一世与672年建立起第二十六王朝,定都
  • 萤火一号萤火一号是中国火星探测计划中的第一颗火星探测器,因为此时俄方火星计划中中国航天共同参与,也是中国首次与欧洲、俄罗斯等国一起,进行国际性的深空探测合作,于是加速开发出萤火
  • 计算机系统计算机系统涵盖广泛,包括了以下领域:计算机系统可划分为软件系统与硬件系统两大类。
  • 巴勒斯坦阿拉伯语巴勒斯坦阿拉伯语是巴勒斯坦人(包括1948年以色列建国后仍留在巴勒斯坦的人)说的一种黎凡特阿拉伯语的方言。巴勒斯坦阿拉伯语有来自中东及语言欧洲的词汇。乡村的巴勒斯坦阿拉