У меня был последний день много проблем с 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 прочитать мой файл пользователей (comand:), 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
работает.
Поскольку я новичок в такого рода вещах, мне было бы интересно узнать мнение об этом решении. И, пожалуйста, извините за мой плохой английский.