
我設定了 Postfix 以便我的郵箱(郵件目錄格式)對於我的虛擬用戶設定如下:
┌───┐
│ # │ 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 不需要該存取權限。