在我的 Linux 系统中,我有两个用户,分别是 A 和 B。我需要隔离 B,使 B 无法访问 A 的主目录,即使是 A 自己也无法访问。我该如何解决这个问题?
答案1
将 A 的主目录放入 B 未设置 x(执行)位的目录中。
示例:设/home/prison/A
为 A 的主目录。将 的权限设置prison
为
r-xr-x---
,并将所有者:组设置为root:prisoners
。正常情况下,将 的权限设置为/home/prison/A
,即A
为所有者。
当然,A 仍然可以将他的文件硬链接到其他目录,并以这种方式访问它们。实际上,没有办法保护数据不被具有读取权限并想要复制它们的用户所获取。
答案2
Thiton 的回答是解决这个问题的好方法。
另一个(更繁琐、更复杂的)解决方法是,如果您使用的是 SELinux 或 AppArmour,则创建适当的策略。您可以在系统级别强制执行此操作,A 将无法在文件系统级别(使用 AppArmour)或甚至通过复制文件(使用 SELinux)来绕过它。
此类政策的实施留给读者作为练习。
答案3
这听起来像是 chroot 的工作,有人有一个名为的项目监狱工具看起来确实如此。您的里程可能会有所不同。
答案4
如果没有其他人需要访问用户主目录中的文件,您可以使主目录可执行/可读/可写仅有的由该用户。
sudo chmod 700 /home/username
其他用户将无法看到此目录内部、无法进入该目录等等。