Dovecot SELinux MailDir 权限被拒绝

Dovecot SELinux MailDir 权限被拒绝

我在 CentOS 7.1 上安装了 dovecot。过去,我经常禁用 SELinux,但现在我想拥有一个适合我的带有 SELinux 的服务器。无论如何,我将邮件存储在 /home/USER/Maildir 中,由于我不明白的原因,我收到以下错误:

Jul 25 22:32:03 server dovecot: imap(dean): Error: open(/home/dean/Maildir/dovecot.index.log) failed: Permission denied (euid=1000(dean) egid=1000(dean) missing +r perm: /home/dean/Maildir/dovecot.index.log stat(/home/dean/Maildir/dovecot.index.log) failed: Permission denied)
Jul 25 22:32:03 server dovecot: imap(dean): Error: file_dotlock_create(/home/dean/Maildir/dovecot-uidlist) failed: Permission denied (euid=1000(dean) egid=1000(dean) missing +w perm: /home/dean/Maildir, UNIX perms appear ok (ACL/MAC wrong?))

我使用以下方法检查了 SELinux:

grep -i AVC /var/log/audit/audit.log

并发现:

 avc:  denied  { read write } for  pid=13443 comm="imap" name="dovecot-uidlist" dev="dm-2" ino=1051352 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437859923.579:147270): avc:  denied  { read } for  pid=13443 comm="imap" name="dovecot-uidlist" dev="dm-2" ino=1051352 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.705:147592): avc:  denied  { read append } for  pid=13630 comm="imap" name="dovecot.index.log" dev="dm-2" ino=1051357 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.705:147593): avc:  denied  { read } for  pid=13630 comm="imap" name="dovecot.index.log" dev="dm-2" ino=1051357 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.706:147594): avc:  denied  { read } for  pid=13630 comm="imap" name="dovecot.index.log" dev="dm-2" ino=1051357 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.706:147595): avc:  denied  { getattr } for  pid=13630 comm="imap" path="/home/dean/Maildir/dovecot.index.log" dev="dm-2" ino=1051357 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.707:147596): avc:  denied  { write } for  pid=13630 comm="imap" name="Maildir" dev="dm-2" ino=1048660 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=dir 
type=AVC msg=audit(1437860132.707:147597): avc:  denied  { write } for  pid=13630 comm="imap" name="Maildir" dev="dm-2" ino=1048660 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=dir 
type=AVC msg=audit(1437860132.707:147598): avc:  denied  { read write } for  pid=13630 comm="imap" name="dovecot-uidlist" dev="dm-2" ino=1051352 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file 
type=AVC msg=audit(1437860132.707:147599): avc:  denied  { read } for  pid=13630 comm="imap" name="dovecot-uidlist" dev="dm-2" ino=1051352 scontext=system_u:system_r:dovecot_t:s0 tcontext=system_u:object_r:fusefs_t:s0 tclass=file

我真的不知道该如何解决这个问题。我确实想使用 SELinux,但我还没有找到解决方案。有人能帮忙吗?

答案1

首先要指出的是,解决方案不是禁用 SELinux,而是使用它。

您可以使用一些工具来确定您需要做什么,好消息是,与早期版本相比,这些工具在 CentOS 7.1 中有了很大的改进。

第一次运行审计为什么关于您收集的 AVC 消息

audit2why <FileContainingMessages

如果一切进展顺利,它将为您提供被拒绝的消息列表以及解决这些问题所需采取的措施。

如果这不能给你一个直接的答案,它可能会指向你audit2allow

就您的具体情况而言,我确信 audir2why 会为您提供合适的答案。

相关内容