Dovecot はアップグレード後にログを開けません

Dovecot はアップグレード後にログを開けません

OpenSUSE Tumbleweedホストで、今朝アップデートしました。アップデートと再起動後、dovecotを起動しようとすると、Can't open log file /var/log/dovecot: Permission denied

cat /etc/os-releaseVERSION_ID="20180314" /usr/sbin/dovecot --version利回りを含む2.3.0.1 (ffd8a29)

現在インストールされている Dovecot パッケージは、dovecot-2.3-1.1およびで始まります。更新前にどのバージョンがインストールされていたかはわかりませんが、1 週間以上前のものではないはずです。更新によって、または類似のファイルはdovecot23-2.3.0.1-2.1生成されませんでした。.rpmnew

/etc/dovecot1年以上何も変わっていませんが、この問題は今日新たに発生しました。

非コメント行/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/log775
  • SELinuxを無効にしましたsetenforce 0
  • 私はapparmorを無効にしましたservice apparmor stop(そして で確認しましたservice apparmor status
  • /var/log/dovecot*の所有権をに変更しようとしましたmailが、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 がログを開く権限を拒否される理由、どうすれば許可できますか?

答え1

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、 ではなく の権限を統計情報に使用しました。Pxapparmor.d/user.lib.dovecot.stats/etc/apparmor.d/local

これらすべては、OpenSUSE バグ #1087753、@Psychonaut の質問に対するコメントにリンクされています。OpenSUSE は将来のアップデートでデフォルトを改善する可能性があります。

これらはいずれも、syslog へのログ記録が機能しないという問題には対処しませんが、上記の変更により、dovecot が再び正常に機能するようになったようです。

関連情報