Email

Postfix 無法投遞到使用者的 Maildir

  • November 27, 2021

有一台使用帶有 CentOS 6.5/6.6 的 postfix/dovecot 的伺服器,在過去的幾個月裡,一切都執行良好,直到 raid 控制器失敗。所以我使用 CentOS 7 安裝了一個新伺服器。我使用 adduser 創建了使用者(幸運的是只有一個完整的句柄)並複制了包括郵件在內的主目錄內容並將所有者設置為 user:user 和 770 權限。

在每個使用者的主文件夾中都有一個 Maildir 目錄,該目錄設置為:

drwxrwx--- 9 enduser postfix 4096 Nov 19 22:34 Maildir

所有子目錄為 770,文件為 660。

我遇到的問題是 Postfix 無法寫入 Maildir:

Nov 21 07:47:16 host postfix/local[12504]: warning: maildir access problem for UID/GID=1002/1002: create maildir file /home/enduser/Maildir/tmp/1416584836.P12504.host.domain.com: Permission denied
Nov 21 07:47:16 host postfix/local[12504]: 59E944726D1: to=<enduser@domain.com>, relay=local, delay=185, delays=185/0.02/0/0.05, dsn=5.2.0, status=bounced (maildir delivery failed: create maildir file /home/enduser/Maildir/tmp/1416584836.P12504.host.domain.com: Permission denied)

我已經嘗試了所有我能想到的 777 之外的權限組合。

任何方向或光線都會受到讚賞,

~ 蘭

/home/enduser 樹:

  .
   +-- enduser
       +-- Maildir
           +-- cur
           +-- new
           +-- tmp

為了傳遞郵件,postfix 必須能夠進入使用者的主目錄,並且該目錄必須包含一個完整的 Maildir 樹,其中包含子文件夾和tmp,所有這些子文件夾都具有正確的權限。cur``new

既然您已經檢查了 Maildir 是否存在,是否有正確的文件夾,並且是否有正確的權限,那麼剩下的就是檢查 postfix(以及使用者自己)是否可以進入使用者的主目錄。

為了使它起作用,權限必須在每一步都是正確的。因此,不僅/home/user需要擁有正確的權限 - /home. 如果它由使用者所屬的組擁有,則必須將其設置為 750,如果不是,則必須設置為 755。

您可以通過簡單地向使用者發送請求並嘗試進入他們的主目錄來驗證這一點。

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