dovecot userdb passwd-file default_fields uid не расширяется %variable

dovecot userdb passwd-file default_fields uid не расширяется %variable

Я пытаюсь настроить очень простой общий почтовый сервер, где каждый «домен» является системным пользователем, т. е. «example.com» — это реальный пользователь с /home/example.com/, uid 5001 и gid «example.com» 5001.

У каждого домена\пользователя есть свой собственный почтовый каталог внутри дома и простой файл паролей с виртуальными почтовыми пользователями, связанными с этим доменом.

Информация о версии и конфигурации Dovecot:

# dovecot -n
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.8
auth_mechanisms = plain login
auth_verbose = yes
disable_plaintext_auth = no
mail_location = mbox:~/mail:INBOX=/var/mail/%u
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = username_format=%n /home/%d/mail_users
  driver = passwd-file
}
protocols = " imap lmtp pop3"
ssl = no
userdb {
  args = username_format=%n /home/%d/mail_users
  default_fields = uid=%d gid=%d home=/home/%d/mail/%n mail=maildir:/home/%d/mail/%n
  driver = passwd-file
}

Каждый раз, когда я пытаюсь подключиться к порту pop3\imap, я получаю следующие ошибки на сервере

dovecot: auth: Fatal: passwd-file userdb: Invalid uid: %d
dovecot: master: Error: service(auth): command startup failed, throttling for 2 secs
dovecot: imap-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=192.168.30.10, lip=192.168.20.201, session=<2rgGLBkQ/wDAqB4K>

и клиент видит:

$ telnet 192.168.20.201 imap
Trying 192.168.20.201...
Connected to 192.168.20.201.
Escape character is '^]'.
* BYE Disconnected: Auth process broken
Connection closed by foreign host.

Проверка вики (http://wiki2.dovecot.org/UserDatabase#Userdb_settings) четко указано, что значения default_fields поддерживают %переменные, поэтому я не уверен, не упускаю ли я какую-то другую конфигурацию, необходимую для работы этого.

Поскольку это происходит до того, как клиент может выдать команду USER\LOGIN, я понимаю, что нет имени пользователя, из которого можно извлечь часть домена %d, отсюда и сбой. Я не понимаю, почему происходит попытка аутентификации Dovecot до того, как клиент выдает попытку аутентификации.

Если я изменю конфигурацию на фиксированный uid\gid

default_fields = uid=example.com gid=example.com home=/home/%d/mail/%n mail=maildir:/home/%d/mail/%n

Подключение разрешено, и может быть выдана правильная команда аутентификации. Но тогда, конечно, доступ к почтовому ящику для любого пользователя, не принадлежащего домену example.com, невозможен.

Связанный контент