我想防止某些用户从他们的主目录树中泄漏信息,即使他们 chmod 他们的主目录。换句话说,我有用户 alice 和 bob,并且我想阻止 alice 使 bob(或除 root 之外的任何其他人)可以读取她的主目录树中的任何数据。反之亦然。
最初我觉得这像是 selinux 的工作。但除非必要,否则我不想冒险。
相反,我想出了以下主目录方案,我想知道它是否真的满足我的要求。
我添加了中间目录,而不是主目录 /home/alice 和 /home/bob。这棵树是:
/home root:root drwxr-xr-x (as usual)
/home/alice0 root:alice drwxr-x---
/home/alice0/alice alice:alice drwxrwxrwx (alice's home dir)
/home/bob0 root:bob drwxr-x---
/home/bob0/bob bob:bob drwxrwxrwx (bob's home dir)
爱丽丝和鲍勃是各自组的唯一成员(像往常一样)。 alice 的主目录是 /home/alice0/alice,bob 的主目录也类似,因此与正常情况略有不同。除了 homedir alice (bob) 之外,中间目录 alice0 (bob0) 中没有其他任何东西。 Alice 和 Bob 仍然拥有他们的主目录,但是主目录的访问权限不再那么重要,这就是重点。其目的是中间的“user0”目录层由 root 拥有,每个用户仅具有受限的“rx”组访问权限,可以防止每个用户组之外的泄漏,无论每个用户对其主目录或在其主目录内执行什么操作。
对于那些假设 /home/alice 始终是 alice 的 homedir 的应用程序,我可以在 /home 中添加符号链接: /home/alice -> /home/alice0/alice ,对于 bob 也类似。
这在所有情况下都有效吗?难道还有什么问题吗?
答案1
我不明白你为什么要这么做
/home/alice0/alice alice:alice drwxrwxrwx (alice's home dir)
和
/home/bob0/bob bob:bob drwxrwxrwx (bob's home dir)
我的意思是:为什么允许所有其他用户读写和执行文件alice
夹bob
。
通过“其他用户”上的 rwx,您允许 alice 读取 bob 目录内容(即使不是文件内容,具体取决于文件权限),反之亦然,bob 可以读取 alice 目录列表。 Bob 还可以在 alice 文件夹中创建文件,反之亦然。
使用标准权限和标准主文件夹,鲍勃无法读取和更改爱丽丝主目录,反之亦然。
您能否添加一个示例来说明您希望在标准设置中避免什么?
如果在标准设置中 alice 和 bob 主目录具有755
目录权限,您可以将其更改为750
除所有者(及其组和根)之外的其他用户都无法看到目录内容