
Я настроил Postfix так, чтобы мои почтовые ящики(формат maildir)для моих виртуальных пользователей установлены следующие настройки:
┌───┐
│ # │ root > myserver > ~
└─┬─┘
└─> ls -l /var/mail/
total 4
drwxr-sr-x 5 postfix postfix 4096 Dec 2 12:27 pistam.eu
┌───┐
│ # │ root > myserver > ~
└─┬─┘
└─> ls -l /var/mail/domain.eu/
total 12
drwx--S--- 5 postfix postfix 4096 Dec 2 12:10 user_1
drwx--S--- 5 postfix postfix 4096 Dec 1 22:35 user_2
┌───┐
│ # │ root > myserver > ~
└─┬─┘
└─> ls -l /var/mail/domain.eu/user_1/
total 12
drwx--S--- 2 postfix postfix 4096 Dec 2 12:27 cur
drwx--S--- 2 postfix postfix 4096 Dec 13 15:17 new
drwx--S--- 2 postfix postfix 4096 Dec 13 15:17 tmp
Сейчас я настраиваю сервер Dovecot (IMAPS/SASL) и хочу использоватьодинсистемный пользователь, который будет управлять всеми почтовыми ящиками для всех виртуальных пользователей Postfix. Я видел много статей, где администраторы создают пользователей, vmail
например:
# useradd -r -m -d /home/vmail vmail
и они используют его как пользователя Dovecot по умолчанию, устанавливая эти две строки в /etc/dovecot/conf.d/10-master.conf
:
mail_access_groups = vmail
default_login_user = vmail
Но в моем случае группа postfix
имеет"setuid"бит, который означает, что эти папки всегда будут доступны для манипуляций пользователя postfix
.
Так в чем смысл создания пользователя vmail
? Почему бы просто не использовать пользователя postfix
для Dovecot, чтобы сделать это вместо этого? Есть ли какие-либо риски при этом? Есть также эти два пользователя, которые были созданы процедурой установки Dovecot:
┌───┐
│ # │ root > myserver > ~
└─┬─┘
└─> cat /etc/passwd | grep dove
dovecot:x:112:118:Dovecot mail server,,,:/usr/lib/dovecot:/usr/sbin/nologin
dovenull:x:113:119:Dovecot login user,,,:/nonexistent:/usr/sbin/nologin
Почему бы не использовать один из них? В файле конфигурации есть еще два совета /etc/dovecot/conf.d/10-master.conf
:
# Login user is internally used by login processes. This is the most untrusted
# user in Dovecot system. It shouldn't have access to anything at all.
#default_login_user = dovenull
# Internal user is used by unprivileged processes. It should be separate from
# login user, so that login processes can't disturb other processes.
#default_internal_user = dovecot
решение1
Это принцип разделения ответственности, который в данном случае имеет преимущества в плане безопасности.
После того, как вы передали ответственность за доставку почты dovecot, это больше не является обязанностью postfix, поэтому postfix не нуждается в этом доступе.