So sieht die Meldung aus
dovecot: imap(user@example.com): Error: open(/var/mail/user) failed: Permission denied (euid=1000(user) egid=1000(user) missing +w perm: /var/mail, dir owned by 0:8 mode=0775)Häufige Ursachen
- Die Mail-Dateien gehören einem anderen Benutzer als dem, den Dovecot nutzt, z. B. nach dem Kopieren als root.
mail_locationzeigt auf den falschen Pfad, oder das Verzeichnis existiert nicht.mail_uid,mail_gidoderfirst_valid_uidpassen nicht zum echten Besitzer.- Das System-Postfach
/var/mailbraucht die Gruppe mail, die Dovecot nicht hat. - SELinux oder AppArmor blockiert den Zugriff auf das Mail-Verzeichnis.
Prüfen
- Welche Pfad- und Benutzer-Einstellungen sind aktiv?
doveconf -n | grep -E 'mail_location|mail_uid|mail_gid|first_valid_uid' - Wem gehört das Mail-Verzeichnis?
ls -ld /var/mail /var/vmail - Was meint Dovecot für dieses Konto?
doveadm user user@example.com - Die genauen Fehler
Lösung
- Den richtigen Pfad setzen, z. B.
mail_location = maildir:/var/vmail/%d/%nodermaildir:~/Maildir. - Den Besitzer korrigieren:
chown -R vmail:vmail /var/vmailundchmod -R u+rwX,g-rwx,o-rwx /var/vmail. mail_uidundmail_gidan diesen Besitzer anpassen undfirst_valid_uidkleiner als er setzen.- Für
/var/mailmail_privileged_group = mailsetzen, damit Dovecot Sperrdateien anlegen kann. - Neu laden:
doveadm reloadund die Anmeldung erneut testen.
Häufige Fragen
Warum klappt es bei neuer Post, aber nicht bei alter?
Alte Dateien wurden von einem anderen Benutzer oder Werkzeug angelegt. Den Besitzer für den ganzen Mail-Baum korrigieren, nicht nur für neue Ordner.
Müssen Postfix und Dovecot denselben Benutzer nutzen?
Bei lokaler Zustellung müssen Schreiber und Leser auf dieselben Dateien zugreifen können. Ein virtueller Mail-Benutzer wie vmail für beide ist die einfachste Lösung.