J'ai Dovecot v2.0.11 installé sur un serveur FreeBSD et les recherches d'utilisateurs pour les adresses e-mail entrantes échouent, mais les recherches pour les utilisateurs du système sont réussies.
Dovecot est configuré pour utiliser les utilisateurs du système, donc mon dovecot.conf a
userdb {
driver = passwd
}
et
passdb {
driver = passwd
}
J'ai le débogage d'authentification activé.
Par exemple, j'ai un utilisateur appelé webmaster, et l'utilisation de doveadm user pour "webmaster" fonctionne comme suit:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Cependant, l'utilisation de doveadm user pour rechercher [email protected] échoue comme suit:
# doveadm user [email protected]
userdb lookup: user [email protected] doesn't exist
Cela se traduit par le courrier entrant pour [email protected] à rebondir avec une erreur "utilisateur inconnu".
Voici l'échec enregistré dans / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd([email protected]): unknown user
Voici l'échec enregistré dans /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
Les utilisateurs et leurs répertoires personnels ont été importés d'un autre serveur et les utilisateurs ont été configurés à l'aide de l'outil vipw. Je suis sûr qu'il y a quelque chose que j'ai manqué lors de l'importation qui ne "relie" pas l'utilisateur du système à la recherche de pigeonnier.
Des idées sur ce que peut être ce quelque chose?
EDIT: En utilisant les conseils de BillThor, j'ai mis à jour dovecot.conf comme suit:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Cependant, maintenant, l'utilisateur doveadm échoue d'une manière différente:
#doveadm user [email protected]
doveadm(root): Error: userdb lookup([email protected]): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for [email protected]
Et, cela ne fonctionne plus pour les utilisateurs sans domaine:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Lorsque je reçois les messages ci-dessus, ce qui suit se trouve dans / 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
J'utilise Ubuntu Server 12.04 et j'ai essayé les solutions ci-dessus. Cependant, j'ai trouvé que le moyen le plus simple et le plus simple était dans 10-auth.conf pour définir
J'utilise PAM pour l'authentification qui est la valeur par défaut dans Ubuntu 12.04.
la source
Je soupçonne que Dovecot 2.1 a cassé cette solution ou a changé le comportement attendu.
J'ai retracé la même erreur d'autorisation à userdb:
Lorsqu'un utilisateur local (non virtuel) reçoit un e-mail via exim-> lmtp, il inclut le domaine. La définition de auth_username_format =% Ln corrige la livraison locale, mais elle rompt les livraisons virtuelles. Le correctif proposé d'ajouter args = username_format semble être ignoré:
et les journaux incluent un avertissement
Fait intéressant, l'utilisation du fichier passwd fonctionne , mais auth est fou que le fichier passwd soit la propriété de root.
la source
passwd-file: Unknown setting: username_format
Pour moi, la raison était un espace supplémentaire:c'est-à-dire que j'avais deux espaces entre CRYPT et uesrname.
la source