qwerty Asked: 2020-11-24 12:24:05 +0800 CST2020-11-24 12:24:05 +0800 CST 2020-11-24 12:24:05 +0800 CST 使用子目录在同一台机器上的用户之间动态共享文件/文件夹 772 我的 Linux 系统上有 3000 多个本地用户。我想为文件夹或文件动态设置权限。我在研究这个主题时遇到了 ACL(访问控制列表)。所有用户的家庭位置必须对其他用户隐藏。但是,如果我想为用户主页的子文件夹中的某些文件或文件夹授予权限,那我该怎么办? 其实我想说的是: 在此处输入图像描述 当我阻止 /user1 的 /user2 目录时,我无法从 user1 访问 user2 的子目录。我该如何解决这个问题? 我看了这里,虽然它与我的问题并不完全相似。我不希望用户看到彼此的目录。 我的救命稻草在哪里? file-sharing access-control-list user-permissions file-permissions 1 个回答 Voted Best Answer Andrew Schulman 2020-12-02T04:48:17+08:002020-12-02T04:48:17+08:00 是的,文件 ACL 可以做到这一点。您想要的是授予 traverse ( x) 权限,而不是 read ( r) 权限。对于目录: Traverse 允许用户沿着目录树遍历目录节点。在命令方面它让他们运行cd directory。 Read 允许用户读取目录的内容。在命令方面它让他们运行ls directory。 因此,对于图中的 user1: # Allow user1 to cd /home/user2/folder/subfolder/subfolder: setfacl -R -m u:user1:x /home/user2/folder/subfolder/subfolder # Allow user1 to ls /home/user2/folder/subfolder/subfolder: setfacl -m u:user1:r /home/user2/folder/subfolder/subfolder 注意: 在第一个命令中,您需要-R(递归)标志,因为您需要设置x所有父目录的权限。没有它,user1 将无法访问叶目录来读取它,即使您在那里授予他们读取权限也是如此。 在您不想要的第二个命令中-R,因为您只想授予叶子目录的读取权限 - 而不是它的任何父目录。 请参阅了解 Linux 目录权限推理。
是的,文件 ACL 可以做到这一点。您想要的是授予 traverse (
x
) 权限,而不是 read (r
) 权限。对于目录:cd directory
。ls directory
。因此,对于图中的 user1:
注意:
-R
(递归)标志,因为您需要设置x
所有父目录的权限。没有它,user1 将无法访问叶目录来读取它,即使您在那里授予他们读取权限也是如此。-R
,因为您只想授予叶子目录的读取权限 - 而不是它的任何父目录。请参阅了解 Linux 目录权限推理。