У меня был последний день много проблем с userdb dovecot.
Проблема заключалась в том, что dovecot считывал только файл /etc/passwd
а не мой пользовательский файл /etc/dovecot/users
.
Я изменил /etc/dovecot/auth-passwdfile.conf.ext
так, чтобы он выглядел так (vmail - это пользователь, которого я создал на своем компьютере с Debian):
# Authentication for passwd-file users. Included from 10-auth.conf.
# passwd-like file with specified location.
# <doc/wiki/AuthDatabase.PasswdFile.txt>
passdb {
driver = passwd-file
args = /etc/dovecot/users
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/home/vmail/%u
}
Мой пользовательский файл выглядел следующим образом (системный синтаксис файла /etc /passwd):
test:{PLAIN}pass::::::
bill:{PLAIN}secret::::::
Но когда я проверил, может ли dovecot прочитать мой файл пользователей ( команда : doveadm user USERNAME
), он не смог прочитать файл пользователей.
После того, как я проверил, все ли написано правильно, я начал искать ошибку.
И я нашел это :)
Так как dovecot.conf
- это просто файл, включающий другие конфигурационные файлы, для поиска в них ошибок. Каким-то образом dovecot все еще искал пользователей в /etc/passwd
а не в моем /etc/dovecot/users
, хотя я изменил auth-passwdfile.conf.ext
.
Это было в 10-auth.conf file
. Этот файл имеет несколько опций для включения файлов conf. По умолчанию он включает файл auth-system.conf.ext
.
Но этот файл по-прежнему определяет, что /etc/passwd
используется в качестве нашей пользовательской userdb
.
Поэтому я прокомментировал эту строку и расшифровал ее, включая наш файл auth-passwd.conf.ext
.
И просто быть за исключением Я также изменил путь в auth-system.conf.ext
файл в нашем /etc/dovecot/users
файле / и т.д. / пользователей userdb
И это все.
После этого это сработало. doveadm user test
работает.
Поскольку я новичок в такого рода вещах, я бы заинтересовался отзывами об этом решении. И, пожалуйста, извините за мой плохой английский.