PRoot
外观
PRoot 是一个程序,它实现了类似于 GNU/Linux 的 chroot、mount --bind 和 binfmt_misc 的功能,但运行在用户空间。它允许未授权用户以替代的根目录执行程序,类似于 chroot 的“牢笼”。这在由于缺乏 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“牢笼”内的程序共享相同的内核、硬件、进程空间和网络子系统。chroot 和 PRoot 都不是为了替代真正的 虚拟化应用程序(如虚拟机监视器和半虚拟化程序)而设计的。