Linux/Unix:chroot 命令

2025年3月17日 | 阅读 3 分钟

什么是 chroot 命令?

“chroot 命令”是一个 Unix/Linux 命令。它用于在 Linux/Unix 操作系统中将根目录更改为新目录。新目录被称为 chroot 监狱和监狱目录。它是一个有效且简单的用户工具集命令。一旦进入两个根目录,就不能使用其上面的任何目录。如果为用户创建了一个伪根目录,它将失去对真实根目录的访问。

通常,为了系统维护,对根目录进行以下更改

  1. 使用隔离机制提高安全性
  2. 重新启动系统上的引导加载程序文件
  3. 为软件测试创建测试环境
  4. 重置密码

chroot 命令的语法

Linux 中的 chroot 命令具有以下语法。

序号chroot 命令语法
1.chroot /path/to/new/root /path/to/server
2.chroot /path/to/new/root 命令
3.chroot [选项] /path/to/new/root /path/to/server

chroot 命令需要一个参数才能运行该命令,该参数指向新的根目录。您可以使用这些可用选项来获得所需的结果。

选项

  • -userspec = (用户:组):此选项描述要使用 chroot 命令的组和用户。可以使用数字 ID 或名称来定义组和用户。
  • -groups = G_LIST:它用于定义补充组,如 G1、G2、G3、G4、G5、…、Gn。
  • -help:此选项用于显示帮助消息。
  • -version:此选项用于显示给定版本的详细信息。

创建 chroot.jail

chroot 监狱是一个虚拟目录。它是通过将根目录转换为新目录来创建的。它充当 chroot 监狱的虚拟根目录。

1. 创建目录

在此命令中,我们首先使用 mkdir 命令创建一个伪根目录。该命令如下所示。


Linux/Unix: chroot Command

此命令在给定地址创建一个目录,我们将其用于 chroot 监狱目录,在运行此命令之前,我们将所需文件添加到新目录中。

2. 在 chroot 监狱中添加所需的根目录

首先,在此命令中,我们在 chroot 监狱目录中创建所需的目录(/ bin、/ lib 和 / lib64)。所需目录在括号(“{}”)中指定,如您在下面的命令语法中所示。


Linux/Unix: chroot Command

3. 移动二进制文件

我们为此命令创建了一个最小的 Linux 环境,我们使用 ls、bash touch 和 rm 命令来增强虚拟环境的功能。


Linux/Unix: chroot Command

注意:在此命令中,我们使用 cp 命令和 -v 标记来查看当时正在复制的内容。

4. 查找命令依赖项

我们可以使用 ldd 命令查找命令的依赖项。现在,我们将使用 cp 命令将目录逐个复制到 chroot 监狱中。我们检查所有依赖库的副本。如果依赖库有问题,chroot 监狱将无法正常运行。



Linux/Unix: chroot Command

我们将在 Chroot 监狱内对我们想要允许的所有命令重复这些步骤。


下一个主题Linux Watch 命令