Linux命令--chroot

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

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

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

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

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

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

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

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

做个演示:

  • 创建一个目录作为根目录,chroot MyRootDir默认会执行${SHELL} -i,即MyRootDir/bin/bash,所以需要拷贝bash到指定目录

直接执行chroot MyRootDir出现错误:chroot: failed to run command ‘/bin/bash’: No such file or directory,原因是缺少bash相关的库,使用ldd查看库并拷贝(此例子中为简化演示,直接拷贝/lib目录)

这样就执行新根目录内的命令

也可以手动指定bash路径切换,这样就不需要将bash放入新根路径的/bin目录下

chroot的第三个参数为运行的指令,该指令位于新的root路径,从下面可以验证改命令执行的不是系统路径的命令

下面是chroot的命令说明:

从chroot的用法可以看出它的使用场景有一定的局限性,首先它依赖于一台现成的unix系统(根目录必须存在于某台现有系统上),其次chroot仅仅是在系统目录上进行了隔离,并没有对进程、网络等层面进行隔离。

首先检验一下进程空间:

在pts/0端切换到新的根目录,执行ping 127.0.0.1操作,该操作属于新根目录下进行的

新开一个终端界面,查看ping进程可以看到在原系统下面是可以看到新根目录下执行的进程。chroot并没有在进程层面上进行隔离

同样地在新根目录下执行ifconfig等网络操作可以看到网络信息跟原系统是完全一样的。chroot并没有在网络层面上进行隔离

chroot并不能完全保证系统安全,在很多层面上chroot并没有进行完全隔离

Linux命令--chroot相关推荐

  1. 【Linux 命令】chroot

    文章目录 一.背景 二.语法 三.案例 3.1 命令 3.2 系统调用 3.3 查找服务是否存在于 chrooted 监禁内 四.注意事项 chroot 用来在指定根目录运行命令(即指定 / 的位置) ...

  2. Linux dn命令大全,linux命令大全完整版.doc

    Linux命令大全完整版 目 录 TOC \h \z \t "001,1,002,2" 目 录 I 1. linux系统管理命令 1 adduser 1 chfn(change?f ...

  3. linux命令全集,Linux命令全集

    下文是小编为你带来的Linux命令全集,欢迎大家阅读. 文件管理 cat chattr chgrp chmod chown cksum cmp cp cut diff diffstat file fi ...

  4. 让windows cmd也用上linux命令

    使用Linux时间长了 还是对Linux强大的命令折服,虽说Windows中doc肯定也会有命令,但是感觉一个是熟悉程度不佳,另一个就是不够强大.所以想在Windows下使用Linux命令,进行一些问 ...

  5. Linux 命令(71)—— ldconfig 命令

    1.简介 ldconfig 命令用于在默认搜寻目录 /lib 和 /usr/lib 以及动态库配置文件 /etc/ld.so.conf 内所列的目录下,搜索出可共享的动态链接库(格式如 lib*.so ...

  6. Linux命令 常见命令 详细分类

    内容来自网络,很久之前保存到本地的,不知道出处如有版权要求请联我删除 操作命令编辑 2 模式切换编辑 3获得帮助编辑 4基础命令编辑 列出目录中的文件(LS) 目录切换(CD) 创建.移动.复制.删除 ...

  7. Linux命令大全,从A到Z,2023年收藏大吉!

    本文为Linux命令大全,从A到Z都有总结,建议大家收藏以便查用,或者查漏补缺! A 命令 描述 access 用于检查调用程序是否可以访问指定的文件,用于检查文件是否存在 accton 用于打开或关 ...

  8. 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  9. 实验楼linux命令,GitHub - encorechow/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

最新文章

  1. 通过eclipse调试MapReduce任务
  2. swift_045(Swift @IBDesignable和@IBInspectable使用)
  3. Livemesh文件同步功能--使用图解
  4. C语言中 *.c和*.h文件的区别!
  5. View Flash AS3 and AVM2
  6. 程序员进阶之算法练习(一)
  7. 网络工程师(2) 操作系统
  8. 哈工大c语言作业系统,2015秋C语言程序设计
  9. 【转】如何查找MySQL中慢查询的SQL语句
  10. Java基础-标识符
  11. LiteIDE主题定制教程【续】
  12. 高淇Java300集
  13. 最新!中国内地高校ESI排名出炉:342所大学上榜!
  14. JavaScript图标移动小案例
  15. android 字体外发光,CSS3 霓虹外发光字体效果
  16. 多帧图像增强 matlab,MATLAB中图像增强技术的实现
  17. 单元测试用例 php,PHP 单元测试(PHPUnit)(2)
  18. springBoot项目改名
  19. jssdk 获取微信收货地址_微信JSSDK获取当前地理位置信息
  20. C# 简单的颜色渐变算法

热门文章

  1. 富文本关键字搜索高亮,解决方法及优化(收藏!)
  2. BT下载不死!Magnet(磁力链接)开创网络BT2.0时代!!
  3. C# Control的Invoke和BeginInvoke
  4. 12306网络订票系统登录提示解决方案
  5. kaggle实战——What Causes Heart Disease?
  6. ProjectEuler Problem1.Multiples of 3 and 5
  7. 无动力风帽自动排风扇屋顶风机通风器
  8. 【Python爬虫系列教程 41-100】猫眼电影字体加密破解
  9. 现实环境中,关于Teb Local Planner 参数调试总结
  10. 厉害了!这群95后正在用三维成像技术让科幻变成现实