Tengo Dovecot v2.0.11 instalado en un servidor FreeBSD y las búsquedas de usuarios para las direcciones de correo electrónico entrantes fallan, pero las búsquedas de usuarios del sistema son exitosas.
Dovecot está configurado para usar usuarios del sistema, por lo que mi dovecot.conf tiene
userdb {
driver = passwd
}
y
passdb {
driver = passwd
}
Tengo la depuración de autenticación habilitada.
Por ejemplo, tengo un usuario llamado webmaster, y el uso de doveadm user para "webmaster" funciona de la siguiente manera:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Sin embargo, el uso de doveadm user para buscar [email protected] falla de la siguiente manera:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Esto resulta en un correo entrante para [email protected] para rebotar con un error de "usuario desconocido".
Aquí está la falla registrada en / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Aquí está la falla registrada en /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
Los usuarios y sus directorios principales se importaron de otro servidor y los usuarios se configuraron con la herramienta vipw. Estoy seguro de que hay algo que me perdí en la importación que no está "vinculando" al usuario del sistema con la búsqueda de palomar.
¿Alguna idea sobre qué puede ser ese algo?
EDITAR: Utilizando el consejo de BillThor, actualicé dovecot.conf de la siguiente manera:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Sin embargo, ahora, el usuario de doveadm falla de una manera diferente:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
Y ya no funciona para usuarios sin un dominio:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Cuando recibo los mensajes anteriores, lo siguiente está en / 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
Estoy usando Ubuntu Server 12.04 y probé las soluciones anteriores. Sin embargo, descubrí que la forma más simple y fácil era configurar 10-auth.conf
Yo uso PAM para la autenticación, que es el predeterminado en Ubuntu 12.04.
fuente
Sospecho que Dovecot 2.1 rompió esta solución o cambió el comportamiento esperado.
He rastreado el mismo error de autorización al userdb:
Cuando un usuario local (no virtual) recibe un correo electrónico a través de exim-> lmtp, incluye el dominio. La definición de auth_username_format =% Ln arregla la entrega local, pero rompe las entregas virtuales. La solución ofrecida de agregar args = username_format parece ignorarse:
y los registros incluyen una advertencia
Curiosamente, el uso de passwd-file funciona , pero auth está loco porque el archivo passwd es propiedad de root.
fuente
passwd-file: Unknown setting: username_format
Para mí la razón era espacio extra:es decir, tenía dos espacios entre CRYPT y uesrname.
fuente