Email

Postfix 自動創建 Maildir

  • January 6, 2011

我一直在用頭撞牆一段時間。基本上,這裡是綱要:

我們的 MX 記錄指向一個前端 SMTP 伺服器,它包含用於實際路由郵件的別名。沒有別名,無法訪問後端儲存伺服器,這是我們的客戶端連接的。

我正在升級後端電子郵件伺服器。目前,為創建郵箱的伺服器上的每個電子郵件使用者創建一個使用者。在新伺服器上,一切都通過 PAM 驗證到 LDAP 伺服器(所有這些都正常工作)。我的目標是讓 Postfix 自動為使用者創建 Maildir 目錄。當我擁有具有 777 權限的 /home 目錄時,這可以正常工作,但由於顯而易見的原因,應該避免這種情況。我想使用 /home 上的 775 權限來執行此操作,並且使用 Postfix 執行的任何使用者的組所有者,但我似乎無法弄清楚要使用哪個使用者。使用 777 權限,在消息傳遞時創建 /home/$user/Maildir 目錄。有誰知道沒有 777 權限我怎麼能做到這一點?

我正在使用的系統是 64 位 Debian Lenny 5.07 安裝。

任何意見,將不勝感激。

這個問題的答案取決於你的 Postfix 系統是如何配置的。您提到了 pam 和 LDAP,所以我假設您的所有域都在 $mydestination 中,或者您只使用一個域(例如 example.com)

使用 LDAP 映射而不是 mysql/pgsql 映射配置 virtual_mailbox_domains 可能對您來說更容易(儘管邏輯完全相同)。

您創建一個沒有登錄權限的系統使用者。我將在這裡假設一個使用者名和一組 vmail:vmail,但具體的名稱並不重要。

在 LDAP 中,為 vmail 創建相對於 $HOME 的郵箱路徑(因此 maildir 變為 /home/vmail/user/Maildir/)。

將您的域添加到 virtual_mailbox_domains。創建一個 virtual_mailbox_maps 映射,它將使用者名作為輸入並返回使用者名/Maildir 作為輸出。


virtual_mailbox_domains = example.com
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual.cf
virtual_uid_maps = static:$uid_of_vmail
virtual_gid_maps = static:$gid_of_vmail
#$uid_of_vmail and $gid_of_vmail are obtained from the output of 
#id vmail

在 main.cf 中。

請參閱http://www.postfix.org/ldap_table.5.html>和<http://www.postfix.org/VIRTUAL_README.html了解更多資訊(以及您需要在 ldap_virtual.cf 中添加的內容)。

FWIW,Postfix 將本地傳遞過程作為您傳遞給的系統使用者的 uid/gid 執行。

/home 的一般權限是 755,所有者和組均為 root,但使用者可以在 ~user 中寫入。因此 Postfix 會很高興地傳遞到 ~user/Maildir/,但不能創建 ~user。使用虛擬使用者將通過將所有郵箱的訪問權限授予單個 uid/gid 來迴避這個問題,然後只能由您的 pop3/imap 軟體訪問。使用者無法直接訪問郵箱。

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