非 root 用户无法使用 exim 从命令行发送邮件

非 root 用户无法使用 exim 从命令行发送邮件

使用 Exim - root 用户可以从命令行发送电子邮件,但非 root 用户不能。

$ mail -s "test" [email protected] </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 [email protected]

在 /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 添加为 trust_users - 没有什么区别

答案1

其他的已建议解决此问题

chmod 4755 /usr/sbin/exim

在这种情况下,mail 和 mutt 都在调用 sendmail。

问题已解决:

chmod 4755 /usr/sbin/sendmail

现在消息已成功发送,并且 /var/log/exim/mainlog 被写入并反映。

答案2

我遇到了类似的问题,谷歌上也出现了这个问题。

我的解决方案很简单,只需调用/usr/sbin/sendmail而不仅仅是sendmail.

which sendmail使用(作为 root)找到路径。无需更改许可。

(我用的nullmailersendmail“诱饵”,甚至没有exim;但不认为这有什么区别)

相关内容