Вопрос местоположения почты Dovecot

Dovecot не использует mail_location как я ожидаю.

Я хочу предоставить почтовый сервис для пользователей в каталоге LDAP.
Учетные записи пользователей — это виртуальные учетные записи, хранящиеся в LDAP И они НЕ сопоставлены с локальными пользователями.

подробности

Версии пакета

OS              Debian GNU/Linux 8.2 (jessie)
dovecot-core    1:2.2.13-12~deb8u1
dovecot-imapd   1:2.2.13-12~deb8u1
dovecot-ldap    1:2.2.13-12~deb8u1
squirrelmail    2:1.4.23~svn20120406-2
postfix         2.11.3-1
apache2         2.4.10-10+deb8u3

Детали конфигурации

Я установил в /etc/dovecot/conf.d/10-mail.conf:

mail_location = maildir:/var/mail/vhosts/%d/%n

так что я ожидаю, что местоположение почты будет на /var/mail/vhosts/mydomain.com/myuser за [email protected],

Некоторые настройки dovecot, созданные dovecot -n команда, являются:

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
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 =
}
protocols = " imap lmtp sieve"service auth-worker {
user = vmail
}
service imap-login {
inet_listener imap {
port = 143
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}

Ищу в /var/log/mail.log с помощью tail -f Команда, это бросает:

Sep 27 19:10:48 balam dovecot: imap-login: Login: user=<myuser>, method=PLAIN, rip=::1, lip=::1, mpid=24907, secured, session=<7/umVr8gvwAAAAAAAAAAAAAAAAAAAAAB>
Sep 27 19:10:48 balam dovecot: imap(myuser): Error: user myuser: Initialization failed: Namespace '': mkdir(/var/mail/vhosts//myuser) failed: Permission denied (euid=30000(myuser) egid=30002(IT) missing +w perm: /var/mail/vhosts/, dir owned by 5000:5000 mode=0755)
Sep 27 19:10:48 balam dovecot: imap(myuser): Error: Invalid user settings. Refer to server log for more information.

который пытается создать почтовый каталог в /var/mail/vhosts//myuser, вместо /var/mail/vhosts/mydomain.com/myuser как я хочу и ожидаю.

Если вам нужно больше деталей, пожалуйста, спросите меня!

тесты

Для проверки входа в систему я установил клиент SquirrelMail, который запускает предыдущие события, вошедшие в систему. /var/log/mail.log,

0

Решение

Вы должны установить два параметра — mail_uid а также mail_gid в конфиге. Пока они не установлены deliver выполнить поиск в базе данных, чтобы получить UID и GID адресата. Если таковые имеются — они будут использоваться для доступа к файловой системе. В то время как иерархия хранения почты принадлежит 5000:5000 У LDA нет доступа для записи внутри /var/mail/vhosts

Просто добавьте явное объявление пользователя, который может получить доступ к хранилищу почты:

mail_location = maildir:/var/mail/vhosts/%d/%n
mail_uid = 5000 # or his login name
mail_gid = 5000 # or his group name

и перезапустить dovecot, затем deliver будет вызван с UID / GID = 5000. Более того, теперь вы можете установить разрешения хранения почты на 700, чтобы запретить кому-либо, кроме 5000: 5000, доступ к хранилищу почты.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]