LINUX.ORG.RU
ФорумAdmin

Dovecot, авторизация через файл

 , ,


0

1

Делаю авторизацию на почтовом сервере(exim4+dovecot) с авторизацией виртуальных юзеров через файл. Конфиг dovecot:

disable_plaintext_auth = no
auth_username_format = %Lu
auth_verbose = yes
auth_mechanisms = plain login
!include auth-passwdfile.conf.ext
log_path = /var/log/dovecot.log
info_log_path  = /var/log/dovecot-info.log
mail_location = maildir:/var/mail/%u
ssl = no
auth-passwdfile.conf
passdb {
  driver = passwd-file
  args = scheme=plain username_format=%u /etc/dovecot/passwd
}

userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/passwd
{

passwd
zxc:{PLAIN}hello123

Но когда авторизуюсь в почтовом клиенте, пишет следующее: dovecot.log

Feb 13 13:20:35 auth: Error: passwd-file /etc/dovecot/passwd: User zxc is missing userdb info
Feb 13 13:20:35 auth-worker(13988): Error: passwd-file /etc/dovecot/passwd: User zxc is missing userdb info
Feb 13 13:20:37 imap(zxc): Fatal: Level not defined for user [zxc]
Feb 13 13:20:39 imap(zxc): Fatal: Level not defined for user [zxc]
Feb 13 13:21:11 imap(zxc): Fatal: Level not defined for user [zxc]
Feb 13 13:21:13 imap(zxc): Fatal: Level not defined for user [zxc]
Feb 13 13:29:21 auth: Error: passwd-file /etc/dovecot/passwd: User zxc is missing userdb info
Feb 13 13:29:21 auth-worker(14293): Error: passwd-file /etc/dovecot/passwd: User zxc is missing userdb info
Feb 13 13:29:21 auth-worker(14294): Error: passwd-file /etc/dovecot/passwd: User zxc is missing userdb info
dovecot-info.log
Feb 13 13:21:15 auth: Info: passwd-file(zxc@mail.net,192.168.0.15,<CAW/x9iZdwDAqAAP>): unknown user
Feb 13 13:21:19 auth-worker(13988): Info: pam(zxc@mail.net,192.168.0.15): pam_authenticate() failed: Authentication failure (password mismatch?)

Поправьте пожалуйста что сделал ни так?



Последнее исправление: Rayman24 (всего исправлений: 1)

Судя по исходникам (src/auth/db-passwd-file.c:81), парсеру не хватает полей с uid и gid. На первый взгляд достаточно и пустых значений (есть надежда что они спроецируются на глобальные mail_uid и mail_gid).

Т.е. я бы попробовал что-то вроде:

zxc:{PLAIN}hello123::

Хотя в своей конфигурации использую драйвер passwd-file только для passdb, а для userdb — static. В таком варианте passwd файл без лишних двоеточий проблем не вызывает.

Кусок моего конфигурационного файла:

passdb {
  driver = passwd-file
  args = username_format=%n /xxx/domains/%d/passwd
}

userdb {
  driver = static
  args = home=/xxx/domains/%d/%n
}

unterwulf
()
Ответ на: комментарий от unterwulf

Вот вывод команды, doveconf -n:

root@mx:~# doveconf -n
# 2.1.7: /etc/dovecot/dovecot.conf
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = /var/log/dovecot-debug.log
disable_plaintext_auth = no
info_log_path = /var/log/dovecot-info.log
listen = 192.168.0.15
log_path = /var/log/dovecot.log
mail_location = maildir:/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 {
  driver = pam
}
passdb {
  args = scheme=plain username_format=%u /etc/dovecot/passwd
  driver = passwd-file
}
protocols = imap
service auth {
  unix_listener auth-client {
    mode = 0600
    user = Debian-exim
  }
}
ssl = no
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
userdb {
  args = username_format=%u /etc/dovecot/passwd
  driver = passwd-file
}

Что нужно изменить то?

Rayman24
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.