Dovecot kann das Protokoll nach dem Upgrade nicht öffnen

Dovecot kann das Protokoll nach dem Upgrade nicht öffnen

Auf einem OpenSUSE Tumbleweed-Host, heute Morgen aktualisiert. Nach dem Update und einem Neustart schlägt jeder Versuch, Dovecot zu starten, mitCan't open log file /var/log/dovecot: Permission denied

cat /etc/os-releasebeinhaltet VERSION_ID="20180314" /usr/sbin/dovecot --versionErträge2.3.0.1 (ffd8a29)

Derzeit installierte Dovecot-Pakete beginnen mit dovecot-2.3-1.1und dovecot23-2.3.0.1-2.1. Ich bin nicht sicher, welche Version vor dem Update installiert war, aber sie kann nicht älter als eine Woche gewesen sein. Das Update hat keine .rpmnewoder ähnliche Dateien generiert.

/etc/dovecotDaran hat sich seit über einem Jahr nichts geändert und dieses Problem besteht heute neu.

Die kommentarlosen Zeilen aus /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"
  • Ich habe die Berechtigungen gelockert /var/log/dovecot*für777
  • Ich habe die Berechtigungen gelockert /var/logfür775
  • Ich habe SELinux deaktiviert mitsetenforce 0
  • Ich habe Apparmor deaktiviert mit service apparmor stop(und bestätigt mit service apparmor status)
  • Ich habe versucht, den Besitz von zu /var/log/dovecot*ändern mailunddovecot
  • Ich habe umbenannt var/log/dovecotinvar/log/dovecot.old

Ausgabe von 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

Das Volumen ist nicht voll (64%).

Warum wird Dovecot die Berechtigung zum Öffnen seines Protokolls verweigert?, und wie gewähre ich es?

Antwort1

Es sieht so aus, als hätte OpenSUSE das Standard-Apparmor-Profil für Dovecot auf ein Profil aktualisiert, das dessen Funktion auf mehrere Arten verhindert. Das Verhindern der Protokollierung außerhalb von Syslog scheint beabsichtigt zu sein, aber bei den anderen ist das nicht eindeutig der Fall.

Um die Funktionalität wiederherzustellen, musste ich in mehreren Dateien Berechtigungen hinzufügen /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,
    

Die wBerechtigung wird für Protokolle benötigt, da Apparmor sie ablehnt acund es meines Wissens keine Möglichkeit gibt, die Berechtigung für zu erteilen c. Ich konnte keinen Hinweis darauf finden, dass eine Dokumentation mit einer Liste offener Berechtigungen vorhanden ist, daher gibt es möglicherweise eine andere Möglichkeit, „Erstellen und Anhängen“ als zuzulassen w.

Ich habe die ixBerechtigung für Statistiken verwendet, anstatt Pxweil keine apparmor.d/user.lib.dovecot.statsentsprechende Datei darin enthalten ist /etc/apparmor.d/localund ich dachte, es sei besser, meine Änderungen auf lokale Vorgänge zu beschränken.

All dies wurde festgestellt inOpenSUSE-Fehler #1087753, Link im Kommentar von @Psychonaut zur Frage; es ist möglich, dass OpenSUSE die Standardeinstellungen in einem zukünftigen Update verbessert.

Nichts davon behebt das Problem, dass die Protokollierung in Syslog nicht funktioniert, aber die obigen Änderungen scheinen dafür zu sorgen, dass Dovecot wieder normal funktioniert.

verwandte Informationen