我有一组文件不能使用 selinux 的扩展 acl。运行 ls -la 时,我得到类似以下内容的结果:
-rwxr-xr-x. 1 root root 1 Aug 8 2014 filea
-rwxr-xr-x. 1 root root 1 Aug 8 2014 fileb
^ Note the dot
SELinux 设置为宽容,但我无法运行命令sudo setfattr -h -x security.selinux filea
,它返回错误setfattr: filea: Permission denied
。如果我完全禁用 SELinux,它就可以正常工作。
问题是禁用 SELinux 需要重新启动服务器,这是不可能的。有没有办法在ls -la
不重新启动服务器的情况下删除 SELinux 文件 ACL(即删除 中的那个点)?
答案1
SELinux ACL 并非直接在文件上设置,因此您实际上不能这样做。
所有 SELinux 访问规则均应用于“上下文”;所有进程和所有文件都存在于一个或另一个上下文中,而点仅表示该文件具有具体的为其分配 SELinux 上下文 (请参阅ls -Z
),而不是默认上下文 ( unconfined_u:object_r:default_t
)。
如果现行规则允许,你可以更改文件的安全上下文(重新标记)使用chcon
。