Exim
非 root 使用者無法使用 exim 從命令行發送郵件
使用 Exim - root 使用者可以從命令行發送電子郵件,但非 root 使用者不能。
$ mail -s "test" test@test.com </dev/null Null message body; hope that's ok [xxx@master1 /usr/home/xxx]$ 2015-03-31 17:06:34 [58856] cwd=/usr/home/xxx 3 args: send-mail -i test@test.com
在 /var/log/messages 中看到這個:
Mar 31 17:07:11 master1 exim[59400]: 2015-03-31 17:07:11 [59400] 1Ycxl1-000FS4-0T failed to write to main log: length=134 result=-1 errno=9 (Bad file descriptor) Mar 31 17:07:11 master1 exim[59400]: write failed on panic log: length=125 result=-1 errno=9 (Bad file descriptor) Mar 31 17:07:11 master1 exim[59409]: 2015-03-31 17:07:11 [59409] 1Ycxl1-000FSD-1F failed to write to main log: length=134 result=-1 errno=9 (Bad file descriptor) Mar 31 17:07:11 master1 exim[59409]: write failed on panic log: length=125 result=-1 errno=9 (Bad file descriptor)
exim 是一個符號連結 - 符號連結和實際的二進制權限看起來像:
[xxx@master1 ~]$ ls -l `which exim` lrwsr-xr-x 1 root wheel 13 Aug 5 2013 /usr/local/sbin/exim -> exim-4.80.1-2 [xxx@master1 ~]$ ls -l /usr/local/sbin/exim-4.80.1-2 -rwsr-xr-x 1 root wheel 983184 Aug 5 2013 /usr/local/sbin/exim-4.80.1-2
嘗試在 exim 配置中添加使用者 xxx 作為trusted_users - 沒有區別
其他人建議用
chmod 4755 /usr/sbin/exim
在這種情況下,mail 和 mutt 都在呼叫 sendmail。
問題通過以下方式解決:
chmod 4755 /usr/sbin/sendmail
現在消息已成功發送,並且 /var/log/exim/mainlog 被寫入並反映。
我有一個類似的問題,這齣現在Google上。
我的解決方案很簡單,只需呼叫
/usr/sbin/sendmail
而不是sendmail
.
which sendmail
使用(作為根)找到路徑。無需更改權限。(我使用
nullmailer
’sendmail
誘餌’,甚至沒有exim
;但不要認為這有什麼不同)