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,以便它可以运行bash
和ls
命令。
按着这些次序:
1. 创建一个名为chroot_jail的新目录:
mkdir chroot_jail
如果我们尝试chroot
进入新目录,我们会得到以下输出:
你必须先启用该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
这些子目录将存储bash
和ls
命令的所有必要元素。
3. 将cp
命令与命令一起使用which
让复制bash
和ls
命令,而无需指定要从中复制的路径。
为此,请使用:
cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/
注意:如果你的bash
or命令是 aliased,你需要在复制之前取消它们的别名。使用,其中是要取消别名的命令的名称。ls
unalias [command]
[command]
4. 如何使用chroot jail?bash
并ls
在新的根文件夹的工作,加上所有相关的库chroot_jail /库。使用ldd
命令找出哪些库与哪个命令相关联:
ldd $(which bash)
ldd $(which ls)
5. 将适当的库复制到chroot_jail子目录lib和lib64。
对于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目录会启动一个新的bash
shell实例。
使用ls
命令列出新根目录树中的所有文件和目录:
ls -R
7. 使用完新的根文件夹后,退出 shell:
exit
chroot jail用法指南总结
如何使用chroot jail?遵循本教程后,你应该能够设置 chroot jail,以及在新根目录中运行进程和命令所需的资源。
有关 Linux 命令的更多信息,请查看我们的Linux 命令备忘单。