我有一个 CentOS 7 系统,我在其中使用 postfix 作为 MTA。某些用户.forward
在他们的主目录中使用 procmail via:
# cat .forward
"|exec /usr/bin/procmail -f- || exit 75"
在这种情况下,我很难弄清楚为什么 SELinux 不允许 procmail 从以下位置执行 dspam .procmailrc
:
:0fw: dspam.lock
| /usr/bin/dspam --client --stdout --deliver=spam,innocent
在 procmail 日志中,我得到:
procmail: Locking "dspam.lock"
procmail: Executing "/usr/bin/dspam,--client,--stdout,--deliver=spam,innocent"
/bin/sh: /usr/bin/dspam: Permission denied
procmail: Program failure (126) of "/usr/bin/dspam"
procmail: Rescue of unfiltered data succeeded
procmail: Unlocking "dspam.lock"
但是,如果我将 SELinux 设置为宽容模式,它就可以正常工作。
问题是它没有记录任何关于被拒绝内容的 AVC 消息。当我第一次设置时,我发现了一些差距audit2why
并ausearch
修复了它们。现在我什么也得不到,即使它显然是 SELinux 阻止它工作。
编辑:这是 dspam 二进制文件:
# ls -lZ /usr/bin/dspam
-r-x--s--x. dspam mail system_u:object_r:dspam_exec_t:s0 /usr/bin/dspam