chroot功能和用法示例

chroot能够更改linux当前进程及子进程的根目录,操作系统使用chroot创建虚拟化环境,隔离进程以限制程序所能使用的空间。

chroot - change root directory.

chroot [OPTION] NEWROOT [COMMAND [ARG]...]

使用chroot将根目录设置为NEWROOT。

--userspec=USER:GROUP

指定用户和组。用户和组可通过名称或ID指定。

--groups=G_LIST

添加分组

示例

$ chroot /home/tmp /bin/bash

将/home/tmp设置为根目录。

注:需要root权限才能运行chroot命令,应提供在chroot环境中运行的命令和必需的库,如:/bin/bash

$ chroot --userspec=nick /home/tmp /bin/bash

或者

$ chroot --userspec=1001 /home/tmp /bin/bash

指定用户。

$ chroot --groups=1001 /home/tmp /bin/bash

指定组。

何时使用

在与操作系统分离的环境中构建、安装和测试软件。也可用作在64位环境中运行32位应用程序的方法。

通常,利用chroot使用文件系统子集创建临时操作系统环境。以此了解应用程序在未受污染环境中的行为。

错误用法

Linux chroot不应单独用作安全功能。尽管可以用作屏障,但隔离程度不足以充当防护措施,无法阻挡攻击者进入系统。

应将其视为强化功能而非安全功能,如需完全隔离,考虑更完整的解决方案,如:Linux containers, Docker, vservers等。