Mail System 介紹--Deliver Agent (DA)

Deliver Agent 相關事項

系統信箱與個人信箱

以 unix 來說, 所謂的信箱有兩個, 一個是系統信箱, 當 DA 收到一封發給某特定 user 的信件時, 會在把這封信件寫到系統信箱目錄(/var/mail)中, 以 user id 為名稱的檔案中, 另外一個是使用者信箱, 位在使用者的目錄中, 當 user 透過 UA 閱讀信件後, UA 會把這封信件從系統信箱中移除, 並轉存到使用者信箱中

以上圖為例, DA 收到一封給 tsai 這位使用者的信件, DA 會把這封信件加到 /var/mail/tsai 這個檔案的尾端, 當使用者 tsai 用 elm 這個程式來讀信時, 信件內容會被從 /var/mail/tsai 中移除, 並寫到 /home/users/tsai/mbox 這個檔案中.
 

系統信箱 (/var/mail) 這個目錄的權限設定

  owner:root, group:mail, mode:775(-rwxrwxr-x)
 
這樣設的效果是除 root 外, 屬與 mail 這個 group 的 process 也可以在這個目錄建立/刪除檔案.
 

DA 的權限設定

一般說來, 系統在裝起來後原先附有的 DA (/usr/libexec/mail.local) 權限設定就可以正常工作,
不過如果碰到自己安裝新的 DA 時, DA 執行檔可能的權限設定如下

   狀況一: owner:root, group:mail, mode:555(-r-xr-xr-x)
   狀況二: owner:root, group:mail, mode:2555(-r-xr-sr-x)
   狀況三: owner:root, group:mail, mode:4555(-r-sr-xr-x)

DA 的權限設定, 以上三種都可能出現, 越後者 DA 執行時的權限越大,
我們的原則是在能正常運作的前提之下, 程式設定的權限越小越好, 此時就要試看才知道哪個才合適了.
 

安裝新的 DA

大多系統內建的 DA, 基本上都還合用, 可是由於 DA 是被 TA(sendmail) 所呼叫, 以 root 身份執行更新使用者信箱的動作, 因此不受 quota 的限制, 造成使用者信箱佔用空間過大的情形.

如果想限制使用者在系統信箱的大小時, 可以考慮換用其它的 DA, 在這裡推薦 procmail 這個 DA, 它在更新使用者信箱時會檢查是否使用者信箱所佔的空間超過 quota 設定, 如果超過就不收信...

詳細的說明請參考 procmail 的文件

ps: 以 sendmail 來說, 要知道其 DA 是哪一個, 請查 sendmail.cf 中 Mlocal 的設定

   grep Mlocal /etc/mail/sendmail.cf

分享到