允许用户读取其他一些用户的主目录

Ram*_*esh 13 linux permissions

我是系统管理新手,我有一个与权限相关的查询。我有一个叫administration. 在administration组内,我有用户user1, user2, user3, superuser。所有用户都在administration组中。现在,我需要授予用户权限superuser才能查看/home其他用户的目录。但是,我不想user1, user2,user3看到除他自己以外的任何其他用户的家。(也就是说,user1应该只能看到user1's home'等)。

我已经创建了用户和组,并将所有用户分配给了该组。我应该如何指定superuser现在的权限?

换句话说,我正在考虑有两个组(比如NormalUsers和Superuser)。该NormalUsers组将拥有用户user1、user2和user3。该Superuser组将只有用户Superuser。现在,我需要Superuser拥有对组中用户文件的完全访问权限NormalUsers。这在Linux中可能吗?

Gil*_*il' 13

如果用户是合作的,则可以使用访问控制列表(ACL)。在user1(和朋友)的主目录上设置一个 ACL ,授予对superuser. 为新创建的文件以及现有文件的 ACL 设置默认 ACL。

setfacl -R -m user:superuser:rx ~user1
setfacl -d -R -m user:superuser:rx ~user1
Run Code Online (Sandbox Code Playgroud)

user1 如果他愿意,可以更改其文件上的 ACL。

如果您想始终授予superuser对user1's 文件的读访问权限,您可以使用bindfs创建具有不同权限的用户主目录的另一个视图。

mkdir -p ~superuser/spyglass/user1
chown superuser ~superuser/spyglass
chmod 700 ~superuser/spyglass
bindfs -p a+rX-w ~user1 ~superuser/spyglass/user1
Run Code Online (Sandbox Code Playgroud)

通过 ~superuser/spyglass/user1 访问的文件是世界可读的。除了权限之外,~superuser/spyglass/user1是user1的主目录的视图。由于superuser是唯一可以访问的用户,因此~superuser/spyglass只能superuser从中受益。


der*_*ert 12

您可以使用 ACL 向任意组授予对特定目录的访问权限。

例如,如果您运行setfacl -m g:dba:rwx /home/foo,则 dba 组的成员将对其具有 rwx 权限,无论哪个组拥有该目录。

您可能还想设置“默认”ACL(目录中新创建对象的 ACL)以包含此权限。

  • @Ramesh 您需要 +x 才能实际浏览目录。我不确定是什么告诉你一个目录应该是 644,这很愚蠢,它应该是 755 或类似的。但无论哪种方式,用户都会在 ls 的权限字段中看到一个 +,并且可以运行 getfacl 来查看它——这不是秘密。 (2认同)