PRoot
PRoot 是一个程序,它在用户空间实现类似于 GNU/Linux 的 chroot、mount --bind
和 binfmt_misc 的功能,允许非特权用户使用备用根目录执行程序,很像 chroot “jail”。这在由于缺乏 root 权限而无法使用 chroot 的情况下非常有用。
安装
PRoot 可以从 prootAUR 软件包安装。 pacstrap 可用于在使用 proot 之前使用 Arch 环境初始化目录。
使用
安装后,PRoot 不需要 root 权限。与 chroot 一样,必须为 PRoot 提供一个目录作为要运行程序的新根目录。如果未指定程序,PRoot 将默认启动 /bin/sh
。虚拟文件系统不需要手动挂载,因为 PRoot 会自动处理此问题。
$ proot -r ~/mychroot/
此时将启动一个 shell,其中 /
对应于主机系统上的 ~/chroot/
目录。
可以使用 -b
选项显式绑定路径
$ proot -b /bin/bash:/bin/sh
这使得主机的 /bin/bash 在访客机的 /bin/sh 中可用
PRoot 在内部使用 qemu 用户模式模拟器,即使程序是为非主机系统架构编译的,也允许程序在 PRoot 中运行。
安全
与 chroot 类似,PRoot 仅提供文件系统级别的隔离。PRoot “jail” 内的程序共享相同的内核、硬件、进程空间和网络子系统。chroot 和 PRoot 并非旨在替代真正的 虚拟化 应用程序,例如虚拟机监控器和准虚拟化器。