如何使一个用户帐户像root
其他用户帐户一样,例如能够读取、写入、chmod 其所有文件、从此帐户 chown 到 master 并返回、kill/ptrace 其所有进程以及所有认为root
可以的操作,但仅限于该特定slave
帐户?
sudo -u slaveuser
现在我通过允许“主”用户和设置来模拟这一点setfacl -dRm u:masteruser:rwx ~slaveuser
。
它很有用,因为我在单独的用户帐户中运行大多数桌面程序,但有时需要在它们之间移动文件。
如果它需要一些简单的内核补丁那就没问题。
PS 标签“selinux”并不意味着我想使用 SELinux 来解决它,它只是有点相关。
答案1
传统的 unix 安全模型根本无法支持您想要的功能。root
可以做任何事情,并且所有其他用户都是平等的。用户之间的复杂关系往往需要大量的工作root
。
一种可行的方法是在某种虚拟机中重新创建您自己的 Linux 系统,可以使用 Linux-on-Linux 方法(例如用户模式 Linux 或 VServer),也可以使用通用虚拟机(例如 qemu/kvm 或 virtualbox)。在 VM 中,您将拥有 root 访问权限,并且能够轻松地以不同用户身份运行每个应用程序。
您甚至可以在单独的轻量级虚拟机中运行每个应用程序(VServer 可能是最适合这种情况的)。OLPC(每个孩子一台笔记本电脑)项目尝试了它,发现性能令人满意,但后来放弃了这个想法,我不知道为什么(也许应用程序之间共享数据太麻烦了?)。