Dovecot 升級後無法打開日誌
在今天早上更新的 OpenSUSE Tumbleweed 主機上。更新並重新啟動後,每次嘗試啟動 dovecot 都會失敗
Can't open log file /var/log/dovecot: Permission denied
cat /etc/os-release
包括VERSION_ID="20180314"
/usr/sbin/dovecot --version
產量2.3.0.1 (ffd8a29)
dovecot-2.3-1.1
目前安裝的 Dovecot 軟體包以和開頭dovecot23-2.3.0.1-2.1
。我不確定更新之前安裝了哪個版本,但它不會超過一周。更新沒有生成任何.rpmnew
或類似的文件。
/etc/dovecot
一年多來沒有任何變化,今天這個問題是新的。來自的非評論行
/etc/dovecot/conf.d/10-logging.conf
:log_path = /var/log/dovecot auth_verbose = yes auth_verbose_passwords = no auth_debug = no auth_debug_passwords = no mail_debug = yes plugin { } log_timestamp = "%Y-%m%b-%d%a.%H-%M-%S.%Z"
- 我已經放寬了
/var/log/dovecot*
對777
- 我已經放寬了
/var/log
對775
- 我已經禁用了 SELinux
setenforce 0
- 我已禁用 apparmor
service apparmor stop
(並已確認service apparmor status
)- 我已經嘗試將所有權更改
/var/log/dovecot*
為dovecot
- 我已重命名
var/log/dovecot
為var/log/dovecot.old
輸出
ls -al /var/log/dovecot*
:-rwxrwxrwx 1 root root 10666 Aug 16 2016 /var/log/dovecot.debug -rwxrwxrwx 1 root root 1483 Aug 16 2016 /var/log/dovecot.info -rwxrwxrwx 1 root root 34118709509 Mar 17 12:28 /var/log/dovecot.old
音量未滿 (64%)。
為什麼 dovecot 被拒絕打開其日誌的權限,我該如何授予它?
看起來 OpenSUSE 將 dovecot 的預設 apparmor 配置文件更新為阻止它以多種方式執行的配置文件。阻止它在 syslog 之外記錄似乎是故意的,但其他人的情況並不明顯。
要恢復功能,我必須在以下幾個文件中添加權限
/etc/apparmor.d/local/
:
usr.lib.dovecot.auth
/run/dovecot/old-stats-user w,
usr.lib.dovecot.config
/var/lib/dovecot/ssl-parameters.dat r, capability dac_read_search,
usr.lib.dovecot.log
/var/log/dovecot w,
usr.sbin.dovecot
/usr/lib/dovecot/stats ix, /var/log/dovecot w,
日誌需要權限,
w
因為 apparmor 拒絕ac
並且據我所知,沒有辦法允許c
. 我找不到任何跡象表明存在帶有打開權限列表的文件,因此可能有另一種方法可以允許“創建和附加”,而不是w
.我使用了
ix
stats 的權限,而不是Px
因為沒有apparmor.d/user.lib.dovecot.stats
在 中包含相應的文件/etc/apparmor.d/local
,我認為最好將我的編輯限制在本地。所有這些都已在OpenSUSE 錯誤 #1087753中註明,連結在 @Psychonaut 對該問題的評論中;OpenSUSE 可能會在未來的更新中改進預設設置。
這些都沒有解決登錄到 syslog 不起作用的問題,但上述更改似乎確實讓 dovecot 再次正常執行。