无法从 /proc/self/attr/current 读取,但权限为 0666

无法从 /proc/self/attr/current 读取,但权限为 0666

我正在使用一个外部创建的脚本,该脚本从 /proc/self/attr/current 读取以获取 SELinux 配置信息。似乎即使文件的权限为0666,在某些系统上也可以毫无问题地读取此文件,而在其他系统上则会产生“无效参数”错误。具体来说,在 Kubernetes 集群中的 3 台服务器中,有 1 台无法读取此文件,而在另外 2 台服务器上,该文件包含字符串“unconfined”。

我碰到此主题报告了同样的问题,但尚未得到解决。

什么原因导致该文件无法被读取?

操作系统是 Debian 8。

答案1

/proc/[pid]/attr/current为进程提供当前的安全属性。这不一定是 SELinux;AppArmor 也会使用它。

对于 Debian 系统来说,几乎肯定是 AppArmor,因为 SELinux 在 Debian 上很少或从未使用过。

具体来说,裸字符串unconfined还表示它是 AppArmor;SELinux 会有一个更长的“不受限制”的字符串,例如unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

当无法读取此路径时,SELinux 和 AppArmor 均未启用。

相关内容