Eu tenho o Dovecot v2.0.11 instalado em um servidor FreeBSD e as pesquisas de usuários para endereços de e-mail recebidos estão falhando, mas as pesquisas de usuários do sistema são bem-sucedidas.
Dovecot está configurado para usar usuários do sistema, então meu dovecot.conf possui
userdb {
driver = passwd
}
e
passdb {
driver = passwd
}
Tenho a depuração de autenticação ativada.
Por exemplo, eu tenho um usuário chamado webmaster e o uso de doveadm user para "webmaster" funciona da seguinte maneira:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
No entanto, o uso do usuário doveadm para pesquisar [email protected] falha da seguinte maneira:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Isso está resultando no recebimento de emails para [email protected] para serem devolvidos com um erro "usuário desconhecido".
Aqui está a falha registrada em / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Aqui está a falha registrada em /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
Os usuários e seus diretórios pessoais foram importados de outro servidor e os usuários foram configurados usando a ferramenta vipw. Tenho certeza de que há algo que eu perdi na importação que não está "vinculando" o usuário do sistema com a pesquisa dovecot.
Alguma idéia sobre o que isso pode ser?
EDIT: Usando o conselho de BillThor, atualizei dovecot.conf da seguinte maneira:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
No entanto, agora, o usuário doveadm falha de uma maneira diferente:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
E não funciona mais para usuários sem domínio:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Quando recebo as mensagens acima, o seguinte está em / 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
Estou usando o Ubuntu Server 12.04 e tentei as soluções acima. No entanto, eu achei que a maneira mais simples e fácil era no 10-auth.conf definir
Eu uso o PAM para a autenticação, que é o padrão no Ubuntu 12.04.
fonte
Eu suspeito que o Dovecot 2.1 quebrou essa solução ou mudou o comportamento esperado.
Rastreei o mesmo erro de autorização no userdb:
Quando um usuário local (não virtual) recebe um email via exim-> lmtp, ele inclui o domínio. Definir auth_username_format =% Ln corrige a entrega local, mas interrompe as entregas virtuais. A correção oferecida para adicionar args = username_format parece ser ignorada:
e os logs incluem um aviso
Curiosamente, o uso do arquivo passwd funciona , mas a autenticação é louca porque o arquivo passwd pertence à raiz.
fonte
passwd-file: Unknown setting: username_format
Para mim, o motivo era espaço extra:ou seja, eu tinha dois espaços entre CRYPT e uesrname.
fonte