我正在尝试让 dspam 在 SELinux (CentOS 7) 下工作。我毫无问题地添加了以下内容:
allow dspam_t dspam_rw_content_t:dir getattr;
allow dspam_t dspam_rw_content_t:file { append getattr lock open write };
然而 dspam 仍然无法通过 procmail 工作:
/bin/sh: /usr/bin/dspam: Permission denied
procmail: Program failure (126) of "/usr/bin/dspam"
当我将 SELinux 设置为宽容时,它工作正常。我尝试使用audit2allow
来确定缺少的内容:
[root@opus ~]# audit2allow -i /var/log/audit/audit.log
#============= dspam_t ==============
allow dspam_t dspam_rw_content_t:dir search;
但是将其添加到我的政策中会导致checkmodule
错误:
checkmodule: loading policy configuration from OPUS.te
OPUS.te:19:ERROR 'permission search is not defined for class dir' at token ';' on line 19:
allow dspam_t dspam_rw_content_t:dir getattr;
allow dspam_t dspam_rw_content_t:dir search;
checkmodule: error(s) encountered while parsing configuration
我搜索了一下,但找不到解决方案。我将如何添加或定义search
指示的权限?
虽然它没有解决我的最终问题(dspam 在 SELinux 强制模式下不工作),但我发布这个是因为它确实回答了我提出的实际问题(如何授予搜索权限)。
原来我
search
在require
这个模块的模块中不见了。我有:当我发现浏览@harrymc 评论中的链接时,我需要:
在此之后,模块编译并正确加载。