博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chroot改变世界
阅读量:6138 次
发布时间:2019-06-21

本文共 2385 字,大约阅读时间需要 7 分钟。

什么是Chroot?

chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 `/`,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。

 

为什么使用Chroot?

在经过 chroot 之后,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件,因此它带来的好处大致有以下3个:

 

1.增加了系统的安全性,限制了用户的权力;

在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot,以此达到用户不能访问一些特定的文件。

 

2.建立一个与原系统隔离的系统目录结构,方便用户的开发;

使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。

 

3.切换系统的根目录位置,引导 Linux 系统启动以及急救系统等;

chroot的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init。另外,当系统出现一些问题时,我们也可以使用 chroot 来切换到一个临时的系统。

Chroot使用1.建立个Chroot后的根目录.mkdir /var/chroot 2.使用jail+chroot模式,编译安装jail.从http://www.jmcresearch.com/static/dwn/projects/jail/jail.tar.gz可以下载到jail的最新版本,它是由位于http://www.jmcresearch.com/projects/jail/的jail chroot项目小组开发的。该软件包包含了帮助自动创建chroot"监牢"的C程序、Perl程序和Bash脚本。 首先将jail.tar.gz置于任意目录,然后执行命令:tar xzf jail.tar.gz && cd jail/src按照个人实际情况修改makefile文件,尤其是安装路径(默认安装路径是/tmp/jail)、体系结构(jail支持Linux、FreeBSD、IRIX和Solaris),以及编译选项等。最后执行命令:make && make install3.使用jail的Per程序脚本创建Chroot环境/tmp/jail/mkjailenv /var/chrootjail软件包提供了几个Perl脚本作为其核心命令,包括mkjailenv、addjailuser和 addjailsw。如addjailsw会从真实文件系统中拷贝二进制可执行文件及其相关的其它文件(包括库文件、辅助性文件和设备文件)到该"监牢" 中。 4.为chroot环境增加常用命令,例如:ls、cat、cp 等/usr/local/bin/addjailsw /var/chroot 备注:如果是Centos 7 的童鞋请安装下这个软件不然以上命令会报错strace 5.这时候还进不去chroot环境,因为没有bash,需要拷贝本地bash到chroot环境ldd /bin/bash    linux-vdso.so.1 => (0x00007ffdbd3e5000)    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f23337da000)    libdl.so.2 => /lib64/libdl.so.2 (0x00007f23335d6000)    libc.so.6 => /lib64/libc.so.6 (0x00007f2333214000)    /lib64/ld-linux-x86-64.so.2 (0x00007f2333a0a000)cd /var/chroot/cp /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} ./lib64/cp /bin/bash ./bin ------------------------华丽的分割线---------------------------------- 如何在chroot环境中使用Yum 1.创建rpm目录mkdir –p /var/chroot/var/lib/rpm 2.指定rpm rebuild 目录rpm --rebuilddb --root=/var/chroot 3.下载Centos7 yum源wget http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm 4.安装Centos7 yum源rpm -ivh --root=/var/chroot --nodepscentos-release-7-2.1511.el7.centos.2.10.x86_64.rpm 5.往chroot环境里面安装yumyum --installroot=/var/chroot install -y rpm-build yum 6.拷贝本机解析文件到chroot环境cp /etc/resolv.conf /var/chroot/etc/ 7.进入chroot环境chroot /var/tmp/chroot /bin/bash –l

转载地址:http://hbkya.baihongyu.com/

你可能感兴趣的文章
MySQL表新增字段默认值处理的一处小细节
查看>>
MEMCACHE TIME_WAIT过多的解决方法
查看>>
CITRIX技术峰会,浦东香格里拉之旅
查看>>
在QNAP NAS上安装pfSense
查看>>
mysql-5.7.21版本一直报错ERROR 1067 (42000)!
查看>>
maven自动建立目录
查看>>
收款业务流程图怎样画
查看>>
C++算法之线性结构处理的代码
查看>>
备忘——php中页面延时跳转
查看>>
ntp配置
查看>>
2015-08-18
查看>>
hadoop伪分布式搭建
查看>>
EL表达式函数的简单学习
查看>>
ASP.NET MVC 3.0小知识积累
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Sql Server系列:通用表表达式CTE
查看>>
添加Linux系统Swap空间
查看>>
mysqlsla来分析MYSQL的性能及索引
查看>>
shell脚本实现系统监视统计与数据备份
查看>>