Mam Dovecot v2.0.11 zainstalowany na serwerze FreeBSD i wyszukiwanie użytkowników dla przychodzących adresów e-mail kończy się niepowodzeniem, ale wyszukiwanie użytkowników systemu zakończyło się powodzeniem.
Dovecot jest skonfigurowany do używania użytkowników systemu, więc mój dovecot.conf ma
userdb {
driver = passwd
}
i
passdb {
driver = passwd
}
Mam włączoną funkcję debugowania autoryzacji.
Na przykład mam użytkownika o nazwie webmaster, a używanie doveadm dla „webmaster” działa w następujący sposób:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Jednak użycie użytkownika doveadm do wyszukiwania [email protected] kończy się niepowodzeniem w następujący sposób:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Powoduje to, że poczta przychodząca na adres [email protected] jest odsyłana z błędem „nieznanego użytkownika”.
Oto błąd zalogowany w / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Oto błąd zalogowany w /var/log/debug.log:
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
Użytkownicy i ich katalogi domowe zostały zaimportowane z innego serwera, a użytkowników skonfigurowano za pomocą narzędzia vipw. Jestem pewien, że w imporcie brakuje czegoś, co nie „łączy” użytkownika systemu z wyszukiwaniem dovecot.
Wszelkie pomysły na temat tego, co to może być?
EDYCJA: Korzystając z porady BillThor, zaktualizowałem plik dovecot.conf w następujący sposób:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Jednak teraz użytkownik doveadm nie działa w inny sposób:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
I nie działa już dla użytkowników bez domeny:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Kiedy otrzymuję powyższe komunikaty, w / 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
Używam Ubuntu Server 12.04 i wypróbowałem powyższe rozwiązania. Odkryłem jednak, że najprostszym i najłatwiejszym sposobem było ustawienie 10-auth.conf
Używam PAM do uwierzytelnienia, które jest domyślne w Ubuntu 12.04.
źródło
Podejrzewam, że Dovecot 2.1 albo złamał to rozwiązanie, albo zmienił oczekiwane zachowanie.
Znalazłem ten sam błąd autoryzacji dla userdb:
Gdy użytkownik lokalny (niebędący wirtualnym) otrzyma wiadomość e-mail za pośrednictwem exim-> lmtp, obejmuje domenę. Zdefiniowanie auth_username_format =% Ln naprawia dostawę lokalną, ale przerywa dostawy wirtualne. Oferowana poprawka dodawania args = nazwa_użytkownika wydaje się być ignorowana:
a dzienniki zawierają ostrzeżenie
Co ciekawe, użycie pliku passwd działa , ale auth jest zły, że plik passwd jest własnością root.
źródło
passwd-file: Unknown setting: username_format
Dla mnie powodem była dodatkowa przestrzeń:tzn. miałem dwie spacje między CRYPT a nazwą użytkownika.
źródło