Назад | Перейти на главную страницу

Журнал отладки Postix или Dovecot для папки Maildir, владельца и разрешения виртуальной папки почты пользователя

Я не могу найти полное руководство по 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)