Postfix

對“dovecot”使用“postfix”使用者

  • December 14, 2020

我設置了 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

他們通過將這兩行設置為/etc/dovecot/conf.d/10-master.conf

mail_access_groups = vmail
default_login_user = vmail

但在我的案例中,組postfix有*“setuid”*位,這意味著這些文件夾將始終由 user 操作postfix

那麼創建使用者有什麼意義vmail呢?為什麼不直接使用使用者postfixfor 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

這是關注點分離的原則,這裡有安全的好處。

在您將郵件傳遞給 dovecot 之後,不再是 postfix 的責任,因此 postfix 不需要該訪問權限。

引用自:https://serverfault.com/questions/1046156