![如何让 setfacl 在 Linux 上递归设置 ACL 权限?](https://linux22.com/image/481315/%E5%A6%82%E4%BD%95%E8%AE%A9%20setfacl%20%E5%9C%A8%20Linux%20%E4%B8%8A%E9%80%92%E5%BD%92%E8%AE%BE%E7%BD%AE%20ACL%20%E6%9D%83%E9%99%90%EF%BC%9F.png)
我正在设置一个新服务器,并想尝试使用 ACL 的 chown:chgrp:chmod 样式权限。
setfacl 的手册页表明“-R”选项可用于在文件和目录上递归设置 ACL。
-R, --recursive 递归地将操作应用于所有文件和目录。此选项不能与“--restore”混合使用。
如果我的目录布局如下所示
test/ subtest/ subtest.txt
然后我执行
setfacl -Rm d:u:foo:rwX test
ACL 对“subtest”目录有效,但对 subtest.txt 文件无效。
我想我可以使用 find + exec 来解决这个问题,但我计划使用这台服务器来培训一些其他管理员,并且我想让它尽可能简单,这样我们就不会被一些更高级的约定所困扰。
谢谢
答案1
尝试:
setfacl --recursive --modify u:foo:rwX,d:u:foo:rwX test
修改当前 ACL 以及默认 ACL。我相信“d:”只会影响目录的(d)默认 ACL,而不会影响文件。然后,如果您创建一个新的目录中的文件,它将默认继承其父目录的 ACL。