Ich habe Dovecot v2.0.11 auf einem FreeBSD-Server installiert und die Benutzersuche nach eingehenden E-Mail-Adressen schlägt fehl, aber die Suche nach Systembenutzern ist erfolgreich.
Dovecot ist so eingerichtet, dass es Systembenutzer verwendet, also hat meine dovecot.conf
userdb {
driver = passwd
}
und
passdb {
driver = passwd
}
Ich habe Auth Debug aktiviert.
Zum Beispiel habe ich einen Benutzer namens Webmaster, und die Verwendung von doveadm user für "webmaster" funktioniert wie folgt:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Die Verwendung des Benutzers doveadm zum Nachschlagen von [email protected] schlägt jedoch wie folgt fehl:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Dies führt dazu, dass eingehende E-Mails an [email protected] mit einem Fehler "Unbekannter Benutzer" abprallen.
Hier ist der in / var / log / maillog angemeldete Fehler:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Hier ist der in /var/log/debug.log protokollierte Fehler:
Apr 16 20:13:35 www dovecot: auth: Debug: master in: USER 1 [email protected] service=doveadm
Apr 16 20:13:35 www dovecot: auth: Debug: passwd([email protected]): lookup
Apr 16 20:13:35 www dovecot: auth: Debug: master out: NOTFOUND 1
Die Benutzer und ihre Home-Verzeichnisse wurden von einem anderen Server importiert und die Benutzer wurden mit dem vipw-Tool eingerichtet. Ich bin mir sicher, dass ich beim Import etwas verpasst habe, das den Systembenutzer nicht mit der Taubenschlag-Suche "verknüpft".
Irgendwelche Ideen, was das für ein Ding sein könnte?
BEARBEITEN: Mit dem Rat von BillThor habe ich dovecot.conf wie folgt aktualisiert:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Jetzt schlägt der Benutzer von doveadm jedoch auf eine andere Weise fehl:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
Und es funktioniert nicht mehr für Benutzer ohne Domain:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Wenn ich die obigen Nachrichten erhalte, befindet sich Folgendes in / var / log / maillog:
Apr 17 17:30:02 www dovecot: auth: Fatal: passdb passwd: Unknown setting: username_format=%u
Apr 17 17:30:02 www dovecot: master: Error: service(auth): command startup failed, throttling
Ich verwende Ubuntu Server 12.04 und habe die oben genannten Lösungen ausprobiert. Ich fand jedoch, dass der einfachste und einfachste Weg in 10-auth.conf zu setzen war
Ich verwende PAM für die Authentifizierung, die in Ubuntu 12.04 die Standardeinstellung ist.
quelle
Ich vermute, dass Dovecot 2.1 diese Lösung entweder gebrochen oder das erwartete Verhalten geändert hat.
Ich habe den gleichen Autorisierungsfehler auf die Benutzerdatenbank zurückgeführt:
Wenn ein lokaler Benutzer (nicht virtuell) eine E-Mail über exim-> lmtp erhält, enthält er die Domäne. Das Definieren von auth_username_format =% Ln behebt zwar die lokale Zustellung, unterbricht jedoch die virtuellen Zustellungen. Der angebotene Fix zum Hinzufügen von args = username_format scheint ignoriert zu werden:
und die Protokolle enthalten eine Warnung
Interessanterweise funktioniert die Verwendung von passwd-file , aber auth ist verrückt, dass die passwd-Datei root gehört.
quelle
passwd-file: Unknown setting: username_format
Für mich war der Grund zusätzlicher Platz:dh ich hatte zwei Leerzeichen zwischen CRYPT und uesrname.
quelle