自动让组中的用户在子树中读写新目录和文件

自动让组中的用户在子树中读写新目录和文件

/data我有一个想要与组中所有用户共享的目录datagrp。我已经设置了所有权限,现在我有

drwxrwsr-x 2 root datagrp 4.0K Apr 22 14:52 /data

现在所有用户都可以在那里读写,这没关系。但是,如果用户usera创建文件夹/data/a,则其他用户无法写入该文件夹,除非我手动设置权限。我希望这是自动的,这意味着/data任何用户都可以看到和修改里面的所有内容datagrp。如何才能做到这一点?

我已经尝试过了

sudo chown :datagrp /data/
sudo chmod 770 /data/
sudo chmod g+s /data/

sudo setfacl -dm u::rw,g::rw,o::r /data

答案1

要么使用 ACL,要么用户需要适当配置其 umask(可以为每个用户的每个 shell 设置,以使事情变得更“有趣”)。如果选择使用 posix 权限,一种可能是通过 cronjob 定期更改权限。 umaks 002会设置 umask,以便在该 shell 中使用组写权限创建文件和目录。 setfacl -m default:group:datagrp:rwx /data如果想使用 ACL 可能会成功。

答案2

这个答案解决了我的问题。快速参考:

sudo mkdir /data # create the directory
sudo chown :datagrp /data
sudo chmod 770 /data
sudo chmod g+s /data
sudo setfacl -Rm g:datagrp:rwX /data # Add an ACL with rwx permissions for the group to all the files already there
sudo setfacl -d -Rm g:datagrp:rwX /data # Add a default ACL with rwx permissions for the group usershare for all files created from now on

相关内容