什么是chroot jail以及如何使用它?详细指南

2021年11月18日20:41:47 发表评论 1,293 次浏览

chroot jail用法指南介绍

如何使用chroot jail?chroot jail这个词的历史可以追溯到 1992 年,并且在今天经常使用。但是这个术语是什么意思,这个操作是做什么用的?

在本教程中,我们将介绍使用 chroot jails 的基础知识,并向你展示如何设置它,并且包含相关的chroot jail用法示例

先决条件

  • 运行 Linux 或 Unix 操作系统的系统
  • 具有 sudo 级别权限的用户帐户
  • 访问终端/命令行

什么是 chroot jail?

chroot (change root的缩写)是一种Unix操作,它将表面根目录更改为用户指定的根目录。

你在 chroot 操作之后运行的任何进程都只能访问新定义的根目录及其子目录。此操作通俗地称为chroot jail,因为这些进程无法在新的根目录之外读取或写入。

chroot jail 用于什么?

Chroot jail用于为进程运行创建一个有限的沙箱。这意味着进程不能恶意更改规定目录树之外的数据。

chroot jails 的另一个用途是作为虚拟机的替代品。这种方法称为内核级虚拟化,需要的资源比虚拟机少。此操作允许用户在同一系统上创建多个隔离的实例。

如何使用chroot jail?

chroot jail用法指南:此示例将带你创建和设置 chroot jail,以便它可以运行bashls命令。

按着这些次序:

1. 创建一个名为chroot_jail的新目录:

mkdir chroot_jail

如果我们尝试chroot进入新目录,我们会得到以下输出:

什么是chroot jail以及如何使用它?详细指南

你必须先启用该bash命令,然后才能chroot进入新目录。这需要将命令文件和所有关联的库复制到新的根目录中。

2. chroot jail用法示例 - 在chroot_jail 中创建一个新的子目录树:

mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu

这些子目录将存储bashls命令的所有必要元素。

3. 将cp命令与命令一起使用which让复制bash 和ls命令,而无需指定要从中复制的路径。

为此,请使用:

cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/

注意:如果你的bashor命令是 aliased,你需要在复制之前取消它们的别名。使用,其中是要取消别名的命令的名称。ls unalias [command][command]

4. 如何使用chroot jail?bashls在新的根文件夹的工作,加上所有相关的库chroot_jail /库。使用ldd命令找出哪些库与哪个命令相关联:

ldd $(which bash)
ldd $(which ls)
什么是chroot jail以及如何使用它?详细指南

5. 将适当的库复制到chroot_jail子目录liblib64

对于bash命令:

cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/

对于ls命令:

cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/

6、chroot jail用法示例 - 使用chroot命令将root改为chroot_jail目录:

sudo chroot chroot_jail
什么是chroot jail以及如何使用它?详细指南

注意:将根目录更改为chroot_jail目录会启动一个新的bashshell实例。

使用ls命令列出新根目录树中的所有文件和目录:

ls -R
什么是chroot jail以及如何使用它?详细指南

7. 使用完新的根文件夹后,退出 shell:

exit

chroot jail用法指南总结

如何使用chroot jail?遵循本教程后,你应该能够设置 chroot jail,以及在新根目录中运行进程和命令所需的资源。

有关 Linux 命令的更多信息,请查看我们的Linux 命令备忘单。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: