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
およびで始まります。更新前にどのバージョンがインストールされていたかはわかりませんが、1 週間以上前のものではないはずです。更新によって、または類似のファイルはdovecot23-2.3.0.1-2.1
生成されませんでした。.rpmnew
/etc/dovecot
1年以上何も変わっていませんが、この問題は今日新たに発生しました。
非コメント行/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*
の所有権をに変更しようとしました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
、 ではなく の権限を統計情報に使用しました。Px
apparmor.d/user.lib.dovecot.stats
/etc/apparmor.d/local
これらすべては、OpenSUSE バグ #1087753、@Psychonaut の質問に対するコメントにリンクされています。OpenSUSE は将来のアップデートでデフォルトを改善する可能性があります。
これらはいずれも、syslog へのログ記録が機能しないという問題には対処しませんが、上記の変更により、dovecot が再び正常に機能するようになったようです。