У меня был последний день много проблем с 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работает.

Поскольку я новичок в такого рода вещах, мне было бы интересно узнать мнение об этом решении. И, пожалуйста, извините за мой плохой английский.

SlartiDev
источник