Dovecot升級後打不開日誌

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 軟體包以 和dovecot-2.3-1.1開頭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
  • 我已經禁用了 SELinuxsetenforce 0
  • 我已停用 apparmor service apparmor stop(並透過 確認service apparmor status
  • 我嘗試將所有權更改/var/log/dovecot*maildovecot
  • 我已重命名var/log/dovecotvar/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 被拒絕開啟其記錄的權限,我該如何授予它?

答案1

看起來 OpenSUSE 更新了 dovecot 的預設 apparmor 配置文件,以多種方式阻止其運行。阻止它在系統日誌之外記錄似乎是有意為之,但其他人的情況並非如此。

為了恢復功能,我必須在以下文件中新增權限/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統計權限,而不是Px因為沒有apparmor.d/user.lib.dovecot.stats在 中包含相應的文件/etc/apparmor.d/local,並且我認為最好將我的編輯限制在本地。

所有這些都已在OpenSUSE 錯誤 #1087753,連結在 @Psychonaut 對這個問題的評論中; OpenSUSE 可能會在未來的更新中改進預設設定。

這些都沒有解決記錄到 syslog 不起作用的問題,但上述更改似乎確實使 dovecot 再次正常運行。

相關內容