我正在使用一个外部创建的脚本,该脚本从 /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 均未启用。