云网牛站
所在位置:首页 > Linux安全 > Linux系统中的chroot简介

Linux系统中的chroot简介

2017-11-09 10:53:46作者:Linux编辑稿源:优麒麟

chroot通过将软件置于一个jail中,把它与Linux系统其他文件隔离开来。当你要测试一个可能影响你Linux系统或者不安全的软件时,这项技术尤为有用。

从根本上说,chroot是一个特殊的目录,在这个目录中运行的程序无法访问目录外的文件。而从许多方面看,chroot就像在你的系统上安装了另一个系 统。技术上说来,chroot暂时地把根目录(通常是“/”)切换到chroot 目录(比如说“/var/chroot")。由于根目录是文件系统的顶端,应用程序无法访问高于根目录的目录,所以应用程序与其他的系统文件隔离开了。

需要注意的是,从chroot目录外访问chroot内的文件是可能的。

 

一、chroot的作用

1.隔离不安全和不稳定的程序。

2.在64位系统上运行32位的程序。

3.在把新包安装到系统前测试它。

4.在新版的Ubuntu/Ubuntu Kylin上运行旧版本的软件。

5.构建新包时,能仔细地控制相关依赖。

 

二、创建一个chroot

1.安装 schroot 和 debootstrap包:

$ sudo apt-get install schroot debootstrap

2.以管理员权限为chroot创建一个新目录(这里以 ”var/chroot“为例):

$ sudo mkdir /var/chroot

3.以管理员权限打开并编辑 /etc/schroot/schroot.conf:

$ sudo gedit /etc/schroot/schroot.conf

然后在文档中加入以下内容:

[xenial]

description=Ubuntu Xenial

location=/var/chroot

priority=3

user=your_username

groups=sbuild

root-groups=root

注意,这里”xenial"是以ubuntu 16.04为例,你可以替换成你想要的版本。同时,将 your_username 替换成你的用户名

4.将Ubuntu 16.04(Xenial xerus)安装到chroot:

$ sudo debootstrap --variant=buildd --arch amd64 xenial /var/chroot/  http://mirrors.aliyun.com/ubuntu/

这里的amd64是只下载64位的系统,如果要32位,将它替换成 i386。

5.一个基本的chroot就创建好了,通过以下命令进入chroot:

$ sudo chroot /var/chroot

 

三、配置chroot

如果你在chroot环境中想配置DNS解析服务或者访问/proc,可以如下处理:

1.$ sudo cp /etc/resolv.conf  /var/chroot/etc/resolv.conf

2.$ sudo mount -o bind  /proc  /var/chroot/proc

在chroot中,只默认安装了很少的一部分包(甚至"sudo" 也没安装),使用 apt-get install package_name 来安装某个包。

 

四、在chroot中运行图形界面程序

1.将图形界面显示到当前系统:

a)在chroot shell 里执行:

$ export DISPLAY=:0.0

b)然后在系统shell里执行:

$ xhost +  (这条命令允许其它用户能够访问系统的Xserver.)

c)之后你就能在chroot shell里直接启动chroot中的图形程序了,或者在系统shell中通过以下方式启动:

$ sudo chroot  /var/chroot  firefox  -DISPLAY=:0.0

注意,由于缺少很多包,你现在可能无法成功启动这些程序,你可以通过错误信息一一去解决,或者先安装好整个桌面(sudo apt-get install ubuntu-desktop).

2.创建自己独立的display:

a) $ sudo apt-get install xserver-xephyr

b) 确保/proc已经挂载,DNS解析服务设置完成。

c) 在系统 shell 中打开Xephyr:

$ Xephyr  -ac  -screen 800x600 :1 (其中800x600为你要设置的窗口大小)

d) 打开另一个终端,进入chroot:

$ sudo chroot  /var/chroot

e) 在chroot shell 中设置display:

$ export DISPLAY=:1

f) 之后就可以通过上述 (四.1.c)中所说两种方式来运行chroot中的图形应用程序了。如果你喜欢,也可以在这个独立的xephyr窗口中启动整个桌面环境。

Linux系统中的chroot简介

 

五、退出

在chroot shell 中使用 exit 来退出chroot:

$ exit

它会自动移除绑定的目录。

 

相关主题

在Ubuntu/Ubuntu Kylin上安装360安全卫士

精选文章
热门文章