Centos

如何為 Postfix 創建具有足夠權限的 Maildir 目錄?

  • May 12, 2020

我有安裝了 Postfix 的 CentOS 5.5。我想使用具有預設設置的本地投遞代理,但我希望它使用Maildir 目錄樣式郵箱儲存郵件。

當我將郵箱設置為儲存(預設)時:

mail_spool_directory = /var/spool/mail/

我手動創建了maildir,所以它看起來像這樣:

[root@dx2200 /]# ls -lah /var/spool/mail/
total 32K
drwxrwxr-x  4 root  mail 4.0K Mar 15 15:01 .
drwxr-xr-x 13 root  root 4.0K Mar 15 14:33 ..
drwxr-xr-x  5 root  root 4.0K Mar 15 14:52 marshra
drwxr-sr-x  5 pedro mail 4.0K Mar 15 15:01 pedro
[root@dx2200 /]# 
[root@dx2200 /]# ls -lah /var/spool/mail/pedro/
total 40K
drwxr-sr-x 5 pedro mail 4.0K Mar 15 15:01 .
drwxrwxr-x 4 root  mail 4.0K Mar 15 15:01 ..
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 cur
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:01 new
drwxr-sr-x 2 pedro mail 4.0K Mar 15 15:03 tmp
[root@dx2200 /]#

然後我嘗試向本地使用者發送郵件pedro,郵件沒有被傳遞,我/var/log/maillog說:

Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: maildir access problem for UID/GID=1014/1014: error writing message: Permission denied
Mar 15 15:11:00 dx2200 postfix/local[4266]: warning: perhaps you need to create the maildirs in advance
Mar 15 15:11:00 dx2200 postfix/local[4266]: 8D5D11310056: to=<pedro@dx2200.it.eclocal>, orig_to=<pedro>, relay=local, delay=0.04, delays=0.02/0.01/0/0.01, dsn=5.3.0, status=bounced (maildir delivery failed: error writing message: Permission denied)

我在使用虛擬傳遞代理時遇到了類似的問題,virtual_mailbox_base/var/spool/vmail主目錄更改/home/vmail確實有幫助。我也必須與當地的送貨代理一起做嗎?如果是這樣- 為什麼我不能儲存郵件/var/spool

編輯:根據評論完全重寫答案

該問題可能與 SELinux 有關。您可以執行例如sestatus檢查它是啟用還是禁用。

對於maildir投遞,postfix更改為對應的使用者,所以目標目錄需要使用者可寫。情況似乎已經如此。出於隱私考慮,我建議chmod -R o-rwx /var/spool/mail/*

*僅出於完整性考慮:*如果使用 mbox 文件,則 spool 目錄需要可由mail您使用chmod -R g+rwX /var/spool/mail.

引用自:https://unix.stackexchange.com/questions/34233