SElinux 拒绝访问 /proc 中的文件

SElinux 拒绝访问 /proc 中的文件

我的审计插件进程需要能够迭代/proc和读取/proc/pid/stat文件,但 SElinux 拒绝这样做。

我的插件的进程上下文:

ps auxZ | grep -i myplugin
system_u:system_r:auditd_t:s0   root        8143  0.3  0.3  96188  6284 ?        D<l       11:02   0:00 myplugin

拒绝日志示例:type=AVC msg=audit(1705309402.866:1150): avc: denied { getattr } for pid=8143 comm="myplugin" path="/proc/42" dev="proc" ino=95999 scontext=system_u:system_r:auditd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=dir permissive=0

我通过使用创建一个 selinux 策略解决了这个问题audit2allow,它读取审核日志并创建必要的allow语句。但.te结果发现该文件太大,无法读取,超过 100 行。此外,如果我理解正确,这是一个不可靠的解决方案,因为,例如,下次运行插件并迭代时/proc,可能已经有一些新进程,因此,一个/proc带有新安全上下文的新文件我当时没有这样做,并且我的保单中audit2allow没有关于此文件的声明。allow结果,SElinux 将拒绝访问这个新文件。

有没有更简单、更可靠的方法来解决这个问题呢?本质上,我需要一个策略,规定某个进程可以读取所有文件,而/proc无需列出每个可能的文件。

相关内容