我设置了 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
小组“设置 ID”位,这意味着这些文件夹将始终被用户操作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 不需要该访问权限。