PRoot

来自 Arch Linux 中文维基

PRoot是一个能在用户空间内运行的程序, 功能类似于chroot, mount --bind和 binfmt_misc , 能让root用户使用备用根目录运行程序, 就像chroot "jail"一样。 PRoot在由于缺少root权限而无法使用chroot的情况下尤其有用。

安装[编辑 | 编辑源代码]

PRoot可以从prootAUR包安装。 pacstrap可以在运行proot之前用Arch环境初始化目录。

用法[编辑 | 编辑源代码]

安装完成之后, PRoot不需要root权限。 和chroot一样, 你必须为PRoot提供一个新目录作为新的根目录。 如果没有指定shell程序,PRoot默认将启动/bin/sh。 虚拟文件系统无需手动挂载,PRoot会自动处理这个问题。

proot -r ~/mychroot/

此时,将启动一个shell, / 对应于主机上的 ~/mychroot/ 文件夹。

可以使用 -b 选项明确地绑定变量:

proot -b /bin/bash:/bin/sh

这使得主机的/bin/bash在来宾的/bin/sh处可用

PRoot在内部使用qemu用户模式模拟器来允许程序在PRoot内运行,即使程序是为主机系统以外的体系结构编译的。

安全性[编辑 | 编辑源代码]

这篇文章的某些内容需要扩充。

原因: Compare security of chroot and PRoot: Are /proc, /sys, and /dev accessible inside a PRoot? Is privilege escalation possible? (在 Talk:PRoot 中讨论)

与chroot一样,PRoot仅提供文件系统级隔离。 PRoot "jail" 中的程序共享相同的内核,硬件,进程空间和网络子系统。 chroot和PRoot并不是如同虚拟机管理程序或半虚拟化程序的,真正的虚拟化程序替代品。