iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统chroot命令该如何使用
  • 754
分享到

Linux系统chroot命令该如何使用

2023-06-28 13:06:43 754人浏览 八月长安
摘要

本篇文章给大家分享的是有关linux系统chroot命令该如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。chroot简介:chroot,既是Linux的一条命令,也是它

本篇文章给大家分享的是有关linux系统chroot命令该如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

chroot简介:

  • chroot,既是Linux的一条命令,也是它的一个系统调用。

  • chroot的作用就是就是改变当前环境的根目录到一个文件夹,这个文件夹之外的东西,

  • 对于当前环境都是不可见的。

  • 因此若是运行不信任的代码或程序,使用chroot作为一个安全沙箱是个很好的选择。

为何使用 chroot

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

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

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

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

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

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

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

chroot 的使用

为了更好的理解 chroot 发挥的作用,我们将尝试指定一个特定的位置进行根目录切换。但是由于在经过 chroot 之后,系统读取到的 bin/ 等与系统相关目录将不再是旧系统根目录下的,而是切换后新根下的目录结构和文件,因此我们有必要准备一些目录结构以及必要的文件。

清单 1. 准备切换的目录结构

busybox

Busybox 被称为是嵌入式 Linux 中的瑞士军刀。Busybox 包含了许多有用的命令,如 cat、find 等,但是它的体积却非常的小。

 $ pwd /home/wstone/Build/work $ tree . . |-- bin | |-- ash -> busybox | |-- bash | `-- busybox |-- etc `-- newhome

这里使用了静态编译后的 busybox 来提供必要的命令,使用静态编译仅是为了避免动态库文件的拷贝。当然我们也可以拷贝旧系统的下的命令到新的目录结构中使用,但是那些命令通常是动态编译的,这就意味着我们不得不拷贝相关的动态库文件到相应的目录结构中。同时这里的 bash 也非真正的 Bourne Again shell,而是一个执行 ash 的 shell 脚本。在清单 2中,展示了位于旧系统中的 chroot 命令的使用。需要注意的是在使用 chroot 时,要求拥有相关的操作权限。

清单 2. 位于系统中的 chroot 的使用

 mount /dev/hda1 /new-root cd /new-root pivot_root . old-root exec chroot . /sbin/initdev/console 2>&1 umount /old-root

我们可以看到当前路径(/home/wstone/Build/work/),在经过 chroot 后转变成了 / 目录,同时从新根下读取了与系统相关的目录结构。使用 ls 命令失败是由于我们创建的测试目录结构中并没有包含命令 ls,但是我们成功的使用了 busybox 中的 ls。以上看到的只是 chroot 的一种使用方式,其实标准的 chroot (Coreutils – GNU core utilities 提供的 chroot)使用方式有2种:

清单 3. 标准 chroot 的2种使用方式

 chroot NEWROOT [COMMAND...]  chroot OPTioN

刚才我们使用的是方式[2]。这将在没有给定环境时,默认执行 /bin/sh,但是当给定环境后,将运行 ${SHELL} –i,即与环境相同的可交互的 shell。我们的目录结构中并没有包含sh,显然清单 2中的 chroot 运行了 ${SHELL} –i。当然我们也可以在进行切换时指定需要的命令,即使用方式[1]。

清单 4. chroot 另一种方式的使用

 # chroot . /bin/ash #

在清单 4 中,尝试了在经过 chroot 后,执行新目录结构下的 ash shell。不得不说的是,如果新根下的目录结构和文件准备的够充分,那么一个新的简单的 Linux 系统就可以使用了。其实更为常见的是在初始 RAM 磁盘 (initrd)中使用 chroot,以此来执行系统的 init。清单 5 中,展示的是在 Linux 2.4 内核 initrd 中使用 chroot。

清单 5. 在 Linux 2.4 内核 initrd 中使用 chroot 的示例

 mount /dev/hda1 /new-root cd /new-root pivot_root . old-root exec chroot . /sbin/initdev/console 2>&1 umount /old-root

由于 Linux 内核的升级,initrd 处理机制和格式发生了变化,在 Linux 2.6 内核 initrd 中不能再使用 pivot_root,因此一般也不再使用 chroot,而是选择使用 busybox 提供的 switch_root 或者 klibc 提供的 run-init 进行根目录的切换。(这并不是说不能在 Linux 2.6内核 initrd 中使用 chroot,选择 switch_root 或 run-init 仅是出于习惯和方便的考虑。)但是实质上,它们仅是将 chroot 的功能进行了封装,以此更加方便简单的切换根目录。

清单 6. 在 Linux 2.6 内核 initrd 中 chroot 的使用

 find -xdev / -exec rm '{}' '; cd /newmount; mount --move . /; chroot .

switch_root 和 run-init 完成了类似清单 6中的功能,删除 rootfs 的全部内容以释放空间,以及挂载新的根文件系统并进行切换。在 busybox 和 klibc中也有提供 chroot 命令,只是功能上与 Coreutils (GNU core utilities) 包含的 chroot 有稍许差异。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

以上就是Linux系统chroot命令该如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网操作系统频道。

--结束END--

本文标题: Linux系统chroot命令该如何使用

本文链接: https://www.lsjlt.com/news/319586.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统chroot命令该如何使用
    本篇文章给大家分享的是有关Linux系统chroot命令该如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。chroot简介:chroot,既是Linux的一条命令,也是它...
    99+
    2023-06-28
  • chroot命令怎么在Linux系统中使用
    这篇文章给大家介绍chroot命令怎么在Linux系统中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。chroot命令 chroot命令用来在指定的根目录下运行指令。chroot,即 change root dir...
    99+
    2023-06-12
  • Linux系统nc命令该如何使用
    Linux系统nc命令该如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Linux系统中netcat(nc)是一个非常强大的工具,被誉为网络安全界的瑞士军刀。在Linu...
    99+
    2023-06-28
  • Linux系统nice命令该如何使用
    这篇文章主要为大家分析了Linux系统nice命令该如何使用的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统nice命令该如何使用”的知识吧。L...
    99+
    2023-06-28
  • Linux系统命令mkdir该如何使用
    这期内容当中小编将会给大家带来有关Linux系统命令mkdir该如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。mkdir命令是Linux系统中一个基本得命令,其主要作用就是在Linux系统中用来创...
    99+
    2023-06-28
  • Linux系统iptables命令该怎样使用
    Linux系统iptables命令该怎样使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。很多人以为iptables就是防护墙,其实iptables是一个命令行工具,其背后的n...
    99+
    2023-06-28
  • Linux系统命令top该怎么使用
    小编今天带大家了解Linux系统命令top该怎么使用,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统命令top该怎么使用...
    99+
    2023-06-28
  • Linux系统rm命令该怎么使用
    今天给大家介绍一下Linux系统rm命令该怎么使用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。rm命令是Linux系统中删除文件或目录的命令,其功能非常强大...
    99+
    2023-06-28
  • Linux的chroot命令有什么用
    这篇文章主要介绍“Linux的chroot命令有什么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux的chroot命令有什么用”文章能帮助大家解决问题。Linux常用命令chroot (英...
    99+
    2023-06-28
  • Linux系统xargs命令该怎么用
    这篇文章的内容主要围绕Linux系统xargs命令该怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在使用 Linux 时,你是否遇到过需要将一...
    99+
    2023-06-28
  • linux系统sudo命令如何使用
    今天小编给大家分享一下linux系统sudo命令如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-05-25
    linux sudo
  • Linux系统pwd命令如何使用
    这篇文章将为大家详细讲解有关Linux系统pwd命令如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。pwd是Print Working Directory的缩写,其功能是显示当前所在工...
    99+
    2023-06-28
  • Linux系统dd命令该怎么用
    Linux系统dd命令该怎么用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux系统中dd命令可以用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。参数注释:&n...
    99+
    2023-06-28
  • linux系统如何使用netstat命令
    这篇文章主要为大家展示了“linux系统如何使用netstat命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux系统如何使用netstat命令”这篇文章吧。Netstat 命令用于显示...
    99+
    2023-06-27
  • Linux中的chroot命令怎么用
    这篇文章主要介绍Linux中的chroot命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!chroot命令 用来在指定的根目录下运行指令。chroot,即 change root directory (更改 ...
    99+
    2023-06-28
  • Linux系统中clock命令如何使用
    这期内容当中小编将会给大家带来有关Linux系统中clock命令如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。clock 命令:设置或者显示硬件时间的近似值必要参数--adjust 自动调整硬件时...
    99+
    2023-06-12
  • Linux系统中install命令如何使用
    Linux系统中install命令如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用法:install [选项]... [-T] 源文件 目标文件 或:install...
    99+
    2023-06-12
  • Linux系统中如何使用ps命令
    小编给大家分享一下Linux系统中如何使用ps命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux中的ps命令是Process Status的缩写。ps命...
    99+
    2023-06-27
  • linux系统中如何使用Netstat命令
    小编给大家分享一下linux系统中如何使用Netstat命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Netstat 命令用于显示各种网络相关信息,如网络连接...
    99+
    2023-06-28
  • linux系统中如何使用echo命令
    小编给大家分享一下linux系统中如何使用echo命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!echo命令是linux中最基础的命令,也是很常用的命令,特别是在写shell脚本的时候,可能会经常被用到,虽然echo命...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作