권한 문제. dovecot에서 받은 편지함 메시지를 검색할 수 없습니다.

권한 문제. dovecot에서 받은 편지함 메시지를 검색할 수 없습니다.

웹 호스트로부터 CentOS 6.6이 설치된 VPS 서버를 받았습니다. 다양한 사람들이 사용하는 여러 도메인이 있으므로 이 서버는 여러 역할을 수행합니다.

  • 네임서버(BIND 사용) (작동합니다!)
  • 여러 도메인을 위한 웹사이트 호스팅(Apache/MySQL 사용)(작동합니다!)
  • 여러 도메인용 메일 서버(postfix, dovecot, vimbadmin 및 roundcube 사용)(문제)
  • 각 웹사이트의 FTP 서버(아직 설치되지 않음)

내 Linux 기술이 그다지 좋지 않기 때문에 모든 역할을 설치하는 데 도움이 되도록 인터넷에 있는 매뉴얼/하우투 문서를 사용했습니다. 여러 도메인에 대한 메일 서버를 설치 및 구성하는 경우(수동:https://rtcamp.com/tutorials/mail/server/postfix-dovecot-ubuntu/)모두 제일 좋다. 메시지를 보낼 수 있지만 /var/vmail/메일 폴더( )에서 메시지를 검색할 수는 없습니다. 저는 웹메일 환경으로 Roundcube 웹사이트를 사용하고 있습니다.

/var/logs/maillog파일의 오류 메시지

dovecot: imap([email protected]): Error: open(/var/vmail/address.com/account/dovecot.index.log) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /var/vmail/address.com/account/dovecot.index.log, euid is not dir owner)
dovecot: imap([email protected]): Error: file_dotlock_create(/var/vmail/address.com/account/dovecot-uidlist) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +w perm: /var/vmail/address.com/account, euid is not dir owner)

폴더/파일 권한( ls -l)

-rw-rwx---. 1 vmail vmail  248 Feb  7 15:52 dovecot.index.log
-rw-rw----. 1 vmail vmail   24 Feb  7 16:32 dovecot.mailbox.log
-rw-rwx---. 1 vmail vmail   51 Feb  7 15:52 dovecot-uidlist
-rw-rwx---. 1 vmail vmail    8 Feb  7 16:32 dovecot-uidvalidity
-r--rwxr--. 1 vmail vmail    0 Feb  7 15:51 dovecot-uidvalidity.54d62668

폴더/파일 권한( ls -Z)

-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot.index.log
-rw-rw----. vmail vmail unconfined_u:object_r:var_t:s0   dovecot.mailbox.log
-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidlist
-rw-rwx---. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidvalidity
-r--rwxr--. vmail vmail unconfined_u:object_r:var_t:s0   dovecot-uidvalidity.54d62668

이러한 권한은 새 사서함을 만든 후 dovecot 응용 프로그램에 의해 설정됩니다.

추가 검색을 통해 setenforce해당 명령을 찾았습니다. 명령을 입력 setenforce 0하면 roundcube 애플리케이션에서 메일을 검색할 수 있습니다 . 메일을 검색하지 못하도록 다시 설정하세요.

그런데 무슨 일이야? 왜 아무 문제 없이 roundcube 앱에서 메시지를 보낼 수 있는데 setenforce 1.unconfined_u

[2015-02-09] 추가 디버깅 필요

grep -i AVC /var/log/audit/audit.log명령을 사용하여 디버깅하면 다음 줄이 표시됩니다(이것은 tail -n-19...입니다).

type=AVC msg=audit(1423466977.294:254776): avc:  denied  { write } for  pid=13124 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423466977.294:254777): avc:  denied  { read write } for  pid=13124 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.011:254782): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.011:254783): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.035:254784): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.035:254785): avc:  denied  { read } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254786): avc:  denied  { read } for  pid=13139 comm="imap" name="tmp" dev=dm-0 ino=415518 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254787): avc:  denied  { write } for  pid=13139 comm="imap" name="cur" dev=dm-0 ino=415516 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.093:254788): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.093:254789): avc:  denied  { read } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.093:254790): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.094:254791): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.094:254792): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.206:254793): avc:  denied  { read } for  pid=13139 comm="imap" name="tmp" dev=dm-0 ino=415518 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.207:254794): avc:  denied  { write } for  pid=13139 comm="imap" name="cur" dev=dm-0 ino=415516 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.207:254795): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.207:254796): avc:  denied  { read } for  pid=13139 comm="imap" name="dovecot.index.log" dev=dm-0 ino=149840 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file
type=AVC msg=audit(1423467003.207:254797): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.208:254798): avc:  denied  { write } for  pid=13139 comm="imap" name="$myaccount$" dev=dm-0 ino=149839 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=dir
type=AVC msg=audit(1423467003.208:254799): avc:  denied  { read write } for  pid=13139 comm="imap" name="dovecot-uidlist" dev=dm-0 ino=149846 scontext=system_u:system_r:dovecot_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file

답변1

SElinux를 허용 모드로 설정하고 작동하는지 시도해 볼 수 있습니까?

sudo setenforce permissive

SElinux 정책이 잘못된 것 같습니다. 정책은 다음과 같아야 합니다.

   drwx------. vmail vmail system_u:object_r:mail_spool_t:s0 example.org

다음을 통해 정책을 올바르게 설정할 수 있습니다.

sudo semanage fcontext -a -t mail_spool_t "/var/vmail(/.*)?"
sudo restorecon -Rv /var/vmail

관련 정보