chroot Directory Command
注意:如果新根目录中的特殊文件具有与实际根目录不同的主要和次要设备号,则可能会覆盖文件系统。
只有具有 root 用户权限的用户才可以使用 chroot 命令。如果具有 root 用户权限,则 chroot 命令将根目录更改到当执行 Command 时 Directory 参数指定的目录。任何路径名中的第一个 /(斜杠)更改为指定 Command 及其子命令的 Directory。
Directory 路径名始终相对于当前 root。即使 chroot 命令生效,Directory 路径名相对于运行进程的当前 root。
在 chroot 命令运行后,大多数程序可能不能正常运行。例如,如果共享库不在新的 root 文件系统中,则使用共享库的命令将失败。最常用的共享库是 /usr/ccs/lib/libc.a 库。
如果当前 root 用户位置使 /etc/passwd 文件不能到达,则 ls -l 命令不会成功给出用户名和组名。此外,如果文件(/usr/lib/nls/*)不在新的 root 文件系统中,取决于这些本地化文件的实用程序也可能会失败。您的职责是确保所有重要的数据文件都在新的 root 文件系统中,并确保已更改访问此类文件的必要路径名。
Command | 指定命令以使用 chroot 命令运行。 |
Directory | 指定新的根目录。 |
注意:以下示例中的命令可能取决于共享库。在运行 chroot 命令之前,请确保共享库在新的 root 文件系统中。
mkdir /usr/bin/lib cp /usr/ccs/lib/libc.a /usr/bin/lib chroot /usr/bin pwd
chroot /var/tmp /usr/bin/ksh
这使目录名 /(斜杠)在 /usr/bin/ksh 命令持续时间指向 /var/tmp。它还使得原始的 root 文件系统不可访问。/var/tmp 文件上的文件系统必须包含 root 文件系统的标准目录。特别是,shell 查找 /var/tmp 文件系统中 /bin 和 /usr/bin 文件中的命令。
运行 /usr/bin/ksh 命令创建作为原始 shell 的单独进程运行的子 shell。 按下 END OF FILE(Ctrl-d)键控顺序以结束子 shell 并返回到您在原始 shell 中的位置。这恢复原始 shell 的环境,包括 .(当前目录)和 /(根目录)的意义。
chroot directory Command > file
AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的文件系统说明了 文件系统的类型、管理、结构和维护。