如何让 setfacl 在 Linux 上递归设置 ACL 权限?

如何让 setfacl 在 Linux 上递归设置 ACL 权限?

我正在设置一个新服务器,并想尝试使用 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。

相关内容