PRoot

出自 ArchWiki

PRoot 是一个程序,它在用户空间实现类似于 GNU/Linux 的 chrootmount --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 内部是否可以访问 /proc、/sys 和 /dev?是否可能提权?(在 Talk:PRoot 中讨论)

与 chroot 类似,PRoot 仅提供文件系统级别的隔离。PRoot “jail” 内的程序共享相同的内核、硬件、进程空间和网络子系统。chroot 和 PRoot 并非旨在替代真正的 虚拟化 应用程序,例如虚拟机监控器和准虚拟化器。