ACL 有多个默认组?

ACL 有多个默认组?

使用 Linux ACL,您可以让多个组对某个文件夹具有默认访问权限吗?我希望在不同的编码组 + 多个进程之间共享代码存储库。我的想法是,如果一个组中的用户在共享存储库内创建内容,即使所有者是该用户,默认权限也会传播到该新文件,其他用户仍然可以访问该内容。

这是我以 root 身份尝试的操作:

mkdir /tmp/temp
chmod 770 /tmp/temp
setfacl -dm g:www-data:rx,g:sambashare:rx /tmp/temp
getfacl /tmp/temp

# 文件:临时
# 所有者:root
# 组:root
用户::rwx
组::rwx
其他:: - -
默认值:用户::rwx
默认:组::rwx
默认:组:www-数据:rx
默认:组:sambashare:rx
默认值:掩码::rwx
默认:其他::---

作为测试用户

ID
uid=1004(测试用户) gid=1007(测试用户) groups=1007(测试用户),110(sambashare)
cd /tmp/temp
bash:cd:temp:权限被拒绝

显然它没有像我预期的那样工作。有人能帮我理解为什么它不工作以及如何解决这个问题吗?

PS 我正在设置默认组权限而不是常规组权限,因为这些权限应该传播给子组权限。

setfacl -mg:sambashare:rx /tmp/temp
似乎可以授予访问权限。

谢谢。

答案1

尝试运行setfacl -Rdm g:www-data:r-x,g:sambashare:r-x /tmp/tempsetfacl -Rm g:www-data:r-x,g:sambashare:r-x /tmp/temp。选项 d 设置新文件和目录的默认值,但不会更改现有设置,因为只有 root:root 才有访问权限。-R 将方便地递归到现有目录中进行所需的更改。

相关内容