![完全独立的两个帐户而不安装单独的操作系统?](https://linux22.com/image/30901/%E5%AE%8C%E5%85%A8%E7%8B%AC%E7%AB%8B%E7%9A%84%E4%B8%A4%E4%B8%AA%E5%B8%90%E6%88%B7%E8%80%8C%E4%B8%8D%E5%AE%89%E8%A3%85%E5%8D%95%E7%8B%AC%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
我们班终于在我们的机器上安装了 Mint Linux。问题是我们的老师害怕我们会和使用计算机的两个班级玩战争游戏。他的解决方案是安装两个独立的操作系统;由于这个事实,我们需要 sudo 能力,但他不希望我们能够破坏其他人的操作系统(通过玩战争游戏或犯错误)。他的解决方案是安装两个独立的操作系统,但我不喜欢这个想法,原因有几个。首先,我们有MBR,这样就限制了分区的数量;其次,这很烦人,因为它们都是 Mint Linux,所以我们很多时候都会选择错误的。有人知道一种分离两个操作系统的方法,这样一个人就不会搞砸另一个人的事情吗?我不太担心我们会玩战争游戏,因为我们可以使用单独的分区来做到这一点,而且它不太重要。有人有主意吗?
我正在考虑限制用户的权力,同时仍然允许他们使用root;但是,这可能会在以后引起问题。老师当然要控制root账户。
答案1
有两个明显的答案:
- 为每个用户提供自己的虚拟机映像。在虚拟机内部,用户具有root访问权限;在虚拟机之外,根本没有。如果你的硬件支持它,
kvm
将会很好地实现这一点。虚拟机映像只是文件,因此它们很容易复制等。您可以使用写时复制存储,这将节省一些磁盘空间(如果这是一个问题)。 - 使用 Linux 3.8 中新奇的名称空间支持,这实际上允许计算机上的每个人在自己的区域中拥有 root 权限。尤其取决于您需要 root 的目的。 (不过,您实际上可以在命名空间内运行整个独立的发行版,它只需共享相同的内核)。
与单独的分区不同(非常root 很容易搞乱——只需安装它),以上两个实际上是安全的(好吧,你可以物理访问机器,所以这些漏洞无论如何都适用)。
还有更痛苦的事情,例如功能和 SELinux,具体取决于您需要 root (sudo) 访问权限的原因。或者,当然,如果您只需要一两个命令,sudo 具有内置支持来限制可以运行的命令。
编辑:有关命名空间的更多信息,请参阅运行中的命名空间,第 1 部分:命名空间概述,共有六部分。命名空间从几年前就开始慢慢进入 Linux。第 5 部分和第 6 部分涵盖了 3.8 中添加的最后部分,它允许任何随机用户在自己的命名空间中拥有 root 权限。
答案2
教师无需安装同一操作系统的两个版本,只需在逻辑卷上使用根文件系统进行一次设置,然后将 grub 设置为从该 LV 的两个不同快照启动即可。他可以把你的名字放在启动项中,这样就很容易选择,在 grub 上设置密码,并禁用 grub 超时(这样你就不会急于选择某些东西)。他只需要确保快照有足够的空间来涵盖你们将要使用它做的事情。
如果他需要更新引用的 LV,他可以在其他条目之一上编辑命令行(输入密码后),然后只需将内核参数中的 root= 更改为实际的 LV 而不是快照。
这将以一种更加注重资源的方式实现他想要的目的,但最终这是一个坏主意。
最后,我会尝试向他解释,对于 LiveCD,他可能会在风中撒尿,如果你们想这样做,安装到两个不同的分区或从快照启动并不能阻止您,它只是改变了确切的内容您将执行此操作的步骤。