У меня Dovecot v2.0.11 установлен на сервере FreeBSD, и поиск пользователей по входящим адресам электронной почты не выполняется, но поиск пользователей системы успешен.
Dovecot настроен для использования системными пользователями, поэтому мой dovecot.conf имеет
userdb {
driver = passwd
}
и
passdb {
driver = passwd
}
У меня включена авторизация отладки.
Например, у меня есть пользователь с именем webmaster, и использование пользователя doveadm для «webmaster» работает следующим образом:
#doveadm user webmaster
userdb: webmaster
system_groups_user: webmaster
uid : 1020
gid : 1020
home : /home/webmaster
Однако использование пользователя doveadm для поиска webmaster@myregisteredname.com завершается неудачно следующим образом:
# doveadm user webmaster@myregisteredname.com
userdb lookup: user webmaster@myregisteredname.com doesn't exist
Это приводит к тому, что webmaster@myregisteredname.com получает входящую почту с ошибкой «неизвестный пользователь».
Вот ошибка, зарегистрированная в / var / log / maillog:
Apr 16 20:13:35 www dovecot: auth: passwd(webmaster@myregisteredname.com): unknown user
Вот ошибка, зарегистрированная в /var/log/debug.log:
Apr 16 20:13:35 www dovecot: auth: Debug: master in: USER 1 webmaster@myregisteredname.com service=doveadm
Apr 16 20:13:35 www dovecot: auth: Debug: passwd(webmaster@myregisteredname.com): lookup
Apr 16 20:13:35 www dovecot: auth: Debug: master out: NOTFOUND 1
Пользователи и их домашние каталоги были импортированы с другого сервера, и пользователи были настроены с использованием инструмента vipw. Я уверен, что есть кое-что, что я пропустил в импорте, который не «связывает» системного пользователя с поиском dovecot.
Есть идеи о том, что это может быть?
РЕДАКТИРОВАТЬ: Используя советы BillThor, я обновил dovecot.conf следующим образом:
#doveconf -n passdb userdb
passdb {
args = username_format=%n
driver = passwd
}
userdb {
args = username_format=%n
driver = passwd
}
Однако теперь пользователь doveadm не работает по-другому:
#doveadm user webmaster@pantronx.com
doveadm(root): Error: userdb lookup(webmaster@myregisteredname.com): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster@myregisteredname.com
И это больше не работает для пользователей без домена:
#doveadm user webmaster
doveadm(root): Error: userdb lookup(webmaster): Disconnected unexpectedly
doveadm(root): Fatal: userdb lookup failed for webmaster
Когда я получаю вышеупомянутые сообщения, следующее находится в / 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