Я не могу найти полное руководство по Maildir и папкам, в которых находится владелец и разрешения, если они есть, а вы уже нашли его, поделитесь.
В любом случае, мне интересно, есть ли способ получить сообщения об ошибках, связанные с конфигурацией Maildir с помощью Postfix, журнала Dovecot или любого другого инструмента, например (эй, у этой папки неправильный владелец, или у нее нет разрешений, или даже если она не создана)
Я знаю, что вы собираетесь сказать мне: пришлите нам свою папку и конфигурацию, но я хотел бы знать, как отладить это для других будущих случаев.
Вот что я действительно хотел бы знать, например: Мои виртуальные пользователи имеют / home / user / domain / usermail / Maildir
Какие разрешения и у владельца должны быть: дом, пользователь, домен, почта пользователя и Maildir
Пожалуйста, помните, что меня больше всего волнует, это УЧИТЬСЯ ОТЛАДКИ, связанной с проблемами с разрешениями папок.
и у меня в dovecot.conf:
verbose_ssl=yes
mail_debug=yes
auth_debug=yes
auth_verbose=yes
и в master.cf postfix conf в этой строке
smtp inet n - n - - smtpd -v
submission inet n - n - - smtpd -v
Кстати, это drwxr-s --- разрешение в порядке с папкой usermail?
Я предполагаю, что вы используете dovecot-lda
для доставки ваших писем в Maildir. IIRC dovecot-lda
показывает подробную информацию о том, какие разрешения отсутствуют.
dovecot-lda
не имеет доступа к глобальной системе ведения журнала dovecot. Поэтому вам нужно настроить ведение журнала для dovecot-lda
по отдельности. Поэтому вам нужно найти "протокол lda {" в конфигурации вашего голубятни и изменить параметры log_path
и info_log_path
в соответствии с вашими потребностями. Если вы помещаете сюда файлы, то dovecot-lda должен разрешать их запись, и если вы хотите использовать syslog (то есть оставьте параметры пустыми), вам нужно изменить разрешение / dev / log.
В вики-сайте dovecot есть более подробная информация: http://wiki2.dovecot.org/LDA
Кстати: вам не нужны smtp и подробный журнал отправки в postfix, если вы хотите выяснить, в чем проблема с локальной доставкой почты.
Для виртуальных пользователей вам необходимо создать системную учетную запись пользователя и владеть ею, а затем настроить UID и GID этого пользователя в Postfix и Dovecot.
Вот соответствующие части моих dovecot.conf
:
userdb {
driver = static
args = uid=8 gid=12 home=/var/spool/mail/%n
}
mail_location = maildir:~
mail_uid = 8
mail_gid = 12
Userdb - это действительно простой файл, похожий на passwd, содержащий только имена пользователей и пароли, а все остальное жестко закодировано в фактическом userdb {...}
блоком выше, поэтому UID и GID, а "дом" пользователя находится в /var/spool/mail
и начинается с любого использованного имени входа (при условии, что он был заранее определен в файле passwd, в противном случае в доступе будет отказано).
mail_location
сообщает ему, что письма находятся в формате maildir и находятся в ~
(home), что соответствует "домашнему" пути, полученному от userdb выше. mail_gid/uid
снова установите владельца почты соответствующему системному пользователю, который должен владеть сообщениями; очевидно, что в Postfix должно быть так же.
Постфикс main.cf
:
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailboxes
virtual_uid_maps = static:8
virtual_gid_maps = static:12
Тот же базовый каталог, что и Dovecot, /etc/postfix/vmailboxes
просто имеет синтаксис <mail user account> <mail directory>/
так, например, если он содержит serverfault serverfault/
который сообщает Postfix, что любое письмо, полученное на serverfault@domain
в конечном итоге в /var/spool/mail/serverfault
, что соответствует тому месту, где Dovecot будет их искать, когда вы войдете в систему с serverfault
имя пользователя.
В virtual_uid/gid_maps
снова установить право собственности на почту для пользователя системы, которого мы выбрали / создали заранее, он должен быть таким же, как у Dovecot.
Я не знаю каких-либо конкретных параметров ведения журнала, необходимых для отображения ошибок, если я испорчу разрешения виртуальной почтовой папки, мой Dovecot начнет кричать в журналах без какой-либо специальной конфигурации (в моем dovecot.conf нет параметров, связанных с журналированием) :
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: opendir(/var/spool/mail/username) failed: Permission denied (euid=8(mail) egid=12(mail) missing +r perm: /var/spool/mail/username)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:04 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username/) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: chdir(/var/spool/mail/username) failed: Permission denied
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:09 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/.Sent Messages/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
Mar 07 12:54:10 sanctuary dovecot[2175]: imap(username): Error: stat(/var/spool/mail/username/tmp) failed: Permission denied (euid=8(mail) egid=12(mail) missing +x perm: /var/spool/mail/username, dir owned by 0:0 mode=0700)
То же самое с Postfix, когда я пытаюсь отправить электронное письмо с испорченными разрешениями:
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: maildir access problem for UID/GID=8/12: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: warning: perhaps you need to create the maildirs in advance
Mar 07 12:56:45 sanctuary postfix/virtual[2736]: E752F186: to=<username@sanctuary>, relay=virtual, delay=0.05, delays=0.03/0.01/0/0.01, dsn=4.2.0, status=deferred (maildir delivery failed: create maildir file /var/spool/mail/username/tmp/1425729405.P2736.sanctuary: Permission denied)