setfacl 不会递归地应用权限

setfacl 不会递归地应用权限

在我的 RHEL 7.7 系统上,我试图允许用户 foo 读取和执行(不写入) /var/log/ 目录下的所有内容,以包含文件、子目录以及这些子目录中的文件。我尝试过各种setfacl命令,但似乎没有什么可以递归地工作。它允许 foo 使用 rX 权限访问 /var/log/ ,但不能访问其下的任何子目录或文件。

我尝试了以下变体,但 foo 访问 /var/log/ 下面的子目录没有成功

setfacl -Rm d:u:foo:rX,u:foo:rX /var/log
setfacl -Rm u:foo:rX,d:u:foo:rX /var/log
setfacl -R -m u:foo:rX /var/log
setfacl -m u:foo:rX /var/log

在这一点上我很迷失,我宁愿使用setfacloverchmod以确保未来的文件夹和文件(以及现有的)允许 foo 正确访问。

更新:系统有selinux处于强制模式。我设置为宽容,通过验证getenforce,然后运行我的setfacl命令,使用用户 foo 进行测试,但没有成功。将系统设置回强制模式。

答案1

这应该是评论,而不是答案,但我没有足够的观点来评论。这可能是由于 SELinux 造成的。检查状态,getenforce或者sestatus。如果状态为强制执行,您可以尝试setenforce Permissive然后重复这些命令,看看是否有任何区别。但我不建议禁用 SELinux。如果更改状态会产生影响,则您应该更改 /var/log SE 标签。

相关内容