Exim

非 root 使用者無法使用 exim 從命令行發送郵件

  • January 9, 2020

使用 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使用(作為根)找到路徑。無需更改權限。

(我使用nullmailersendmail誘餌’,甚至沒有exim;但不要認為這有什麼不同)

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