一、問題現象
業務反饋某臺應用服務器,普通用戶使用mutt程序發送郵件時,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: permission denied”,而且普通用法使用crontab -e 編輯自身任務計劃時,也會提示“ crontab: edits left in /tmp/crontab.xxxxcl0blz” 。
二、問題分析與解決
1、postdrop異常問題
使用postfix check命令檢測發現有如下報錯:
postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postqueue postfix/postfix-script: warning: not set-gid or not owner+group+world executable: /usr/sbin/postdrop
登錄后復制
上面的提示其實已經非常清楚了,在這兩個可執行文件的組權限中,沒有s權限位。慎重起見,不審找了一臺主機對比下,發現確實不存在s權限,正常的權限如下:
# ll /usr/sbin/postqueue -rwxr-sr-x. 1 root postdrop 259992 Jan 27 2014 /usr/sbin/postqueue
登錄后復制
解決方法非常簡單:
chmod g+s /usr/sbin/postqueue chmod g+s /usr/sbin/postdrop postfix reload
登錄后復制
2、crontab普通用戶無法編輯問題
使用crontab -e發現可以正常查看,但是編輯完,保存時提示“ crontab: edits left in /tmp/crontab.XXXXCl0bLz” 。即然上面第一個問題是s權限位引起的,這個問題想必也是,所以未做strace 或審計跟蹤,地接查看/usr/bin/crontab權限位,發現和正常主機對比,發現用戶權限上少了s權限 ---crontab命令和passwd命令類似,需要用戶具有s權限位。執行如下命令后,問題解決:
chmod u+s /usr/bin/crontab rccron restart
登錄后復制
注:這點對比了下SuSE和redhat下的區別,發現user權限下如果沒有s權限位。在redhat下提示:
而且直接crontab -l命令查看時,都會提示上面的錯誤。而在SuSE沒有這個s權限,仍然可以正常的通過crontab -l 進行查看。