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

Sendmail / dovecot / procmail: разрешения Maildir

Я только что провел несколько часов посреди ночи, пытаясь перенести установку Maildir с Centos 5.6 на Centos 7.2. Я нашел десятки обращений о том, как это сделать, и все они совершенно бесполезны - некоторые из них давали определенные разрешения, например, без права собственности на файлы. Прямая копия структуры каталогов Maildir не работала.

Теперь у меня есть рабочая установка (без SELinux) методом проб и ошибок, но с различными знаками вопроса и, возможно, некоторыми дырами. Буду признателен за отзывы о том, можно ли это улучшить.

В этой настройке Maildir находится в домашнем каталоге пользователя (скажем, /home/joe, или ~):

  1. ~ должны быть o+x (в этой системе владелец joe:joe, химическая завивка 711)
  2. ~/Maildir должен принадлежать joe:vmail, химическая завивка 775. Химическая завивка важна - g 7 копируется во вновь созданные сообщения (как 6)
  3. procmailrc UMASK совершенно не имеет значения, если только он не отнимает какие-либо из этих разрешений - просто игнорируйте его
  4. все в Maildir должно принадлежать joe:vmail, с каталогами даны завивки 775, и обычные файлы 660
  5. Когда procmail в конечном итоге создает файл, например, Maildir/cur он создает это с владельцем joe:mail (не vmail), химическая завивка 664
  6. Практически любое изменение вышеупомянутого вызовет сбой sendmail, dovecot или procmail в какой-то момент процесса доставки.

Ниже приведен сценарий быстрого взлома - запустить из / home, указать имя пользователя.

#!/bin/bash
if [ ! -d "$1" ]; then
    exit 1
fi
echo "Fixing $1..."
chmod o+x "$1"
cd "$1"
chown -R "$1":vmail Maildir
find Maildir -type d -exec chmod 775 {} \;
find Maildir -type f -exec chmod 660 {} \;