Я пытаюсь настроить почтовый сервер! Кажется, все в порядке (через несколько дней), но когда я попытался прочитать почту с помощью сервера IMAP:
18 апреля 17:38:48 sd-84941 dovecot: imap (dlp): ошибка: открыть (/data/maildir/dlp/cur/1460993401.13028_0.sd-84941:2,) не удалось: разрешение отклонено (euid = 1000 (michael ) egid = 1000 (michael) missing + r perm: /data/maildir/dlp/cur/1460993401.13028_0.sd-84941:2 ,, мы не в группе 8 (почта), директория принадлежит 0: 8 mode = 0777)
Письма находятся в папке maildir, но я не могу их прочитать из-за разрешений ...
-rw-rw ---- 1 root root 2363 18 апр, 17:55 1460994924.16416_0.sd-84941
Но если chmod 777 работает (но я не могу делать это каждый раз вручную ..):
-rwxrwxrwx 1 root root 2363 18 апр, 17:55 1460994924.16416_0.sd-84941: 2,
Что случилось ? Кто дает разрешение на файл? fetchmail, procmail или dovecot?
----- Редактировать ------
Спасибо за ответы, @tripleee. Постараюсь подробнее рассказать:
Я установил sendmail, procmail, fetchmail, dovecot и roundcube:
Sendmail и Roundcube: установка по умолчанию.
Procmail:
В / etc / procmailrc (я предпочитаю глобальную конфигурацию, а не пользовательский) у нас есть:
MAILDIR=/data/mails/
DEFAULT=$MAILDIR/
LOGFILE=/var/log/procmail
VERBOSE=on
В / etc / fetchmailrc:
set syslog
set daemon 120
poll mail.interpc.fr
with nodns,
with protocol POP3,
user "dlp",
with password mypass
option keep
Я создал пользователя vmail:
sudo addgroup --gid 5000 vmail
sudo adduser --home /data/mails/ --uid 5000 --gid 5000 --shell /bin/false vmail
В / etc / dovecot / users (с uid и gid vmail):
dlp:{PLAIN}mypass:5000:5000::
В /etc/dovecot/conf.d/10-auth.conf я изменился на:
disable_plaintext_auth = no
#!include auth-system.conf.ext
!include auth-passwdfile.conf.ext
В /etc/dovecot/conf.d/10-mail.conf: mail_location = maildir: / data / mails /
root@sd-84941:/home/michael# ls -al /data/mails/cur/ total 48 drwxr--r-- 2 vmail vmail 4096 Apr 21 15:08 . drwxr--r-- 5 vmail vmail 4096 Apr 21 15:08 .. -rwxr--r-- 1 root root 29635 Apr 21 13:31 1461238276.4519_0.sd-84941:2, -rwxr--r-- 1 root root 3740 Apr 21 13:45 1461239150.5706_0.sd-84941:2, -rw-r--r-- 1 root root 2953 Apr 21 15:04 1461243887.17704_0.sd-84941:2,
Спасибо за помощь...
Ваша комбинация программного обеспечения немного необычна в наши дни (т.е. довольно стандартна 10-20 лет назад). Я предполагаю, что вы используете fetchmail для подключения к серверу POP, а затем он передает почту в procmail для доставки почты в локальные каталоги. Этот подход стал необычным отчасти потому, что сейчас не так много серверов поддерживают только POP, а IMAP позволяет лучше перемещать почту между серверами после доставки. Если есть возможность использовать IMAP на вышестоящем сервере, взгляните на imapfilter. В наши дни также необычно запускать почтовый сервер, который не может принимать прямую доставку, что позволило бы вам просто настроить правило пересылки почты на вышестоящем сервере.
Вы, вероятно, столкнетесь с проблемами, потому что вы используете procmail для доставки непосредственно в локальные каталоги и делаете это с процессом procmail, запущенным от имени пользователя root, а dovecot работает иначе, поэтому dovecot не может читать файлы.
Вы можете выяснить, как запустить procmail от имени правильного пользователя или (если он запускается от имени пользователя root), как указать ему хранить файлы с правильным владельцем. Вы можете получить определенную степень совместимости, но, например, dovecot не сможет должным образом индексировать электронные письма по мере их поступления, поэтому поиск будет затруднен.
Я предлагаю вам использовать голубятню deliver
в качестве местного агента доставки. Он может заменить procmail или может вызываться procmail 1,2 . В любом случае вам нужно будет вызвать его с соответствующим аргументом (-d
), идентифицируя пользователя, которому вы доставляете. Если вы используете procmail для принятия решения о том, в какую почтовую папку доставлять почту, вы можете использовать -p
аргумент в пользу этого, или вам может быть лучше использовать механизм ситовой фильтрации dovecot для принятия этих решений. procmail действительно лучше всего работает с пользователями системы, а не с виртуальными пользователями.
Sieve - лучшее решение для виртуальных пользователей, чем procmail, хотя это открытый вопрос, который имеет менее приятный синтаксис фильтра. У меня было много лет хорошего обслуживания с помощью procmail, и в настоящее время я использую небольшое сито, потому что оно действует до доставки, но для передачи почты между серверами после доставки, и если позволяют обстоятельства, я бы предпочел писать фильтры с imapfilter
.