除非我将/ var / spool / clientmqueue的权限更改为777,否则我无法使用apache + php工作sendmail。
/ var / spool / clientmqueue
的所有权drwxrwxrwx 2 smmsp mail 4096 Jul 19 11:50 clientmqueue
我与smmsp和apache的用户组搞混了。
id apache
uid=48(apache) gid=48(apache) groups=48(apache),12(mail)
id mail
uid=12(mail) gid=12(mail) groups=12(mail),48(apache)
SELinux被禁用
getsebool httpd_can_sendmail
getsebool: SELinux is disabled
如果我将文件夹权限设置为770
,则在maillog中NOQUEUE: SYSERR(apache): can not write to queue directory
/var/spool/clientmqueue/ (RunAsGid=48, required=12): Permission denied
不会发送任何邮件,我会从php收到错误。
如果我将文件夹设置为0777,那么我会在maillog中找到它
dangerous permissions=40776 on queue directory /var/spool/clientmqueue/
但是php会发送好邮件。
是否有可能让它与0770一起使用,并且在组中读取apache用于邮件。我知道错误是得到了主要的GID 48,但它也分享了第12组。
任何帮助都会很棒。
答案 0 :(得分:1)
今天我有同样的问题(来到这里寻找答案)。
我最终找到this overview;从该列表中运行以下命令为我解决了问题:
chmod 4555 /usr/sbin/sendmail
这会在sendmail二进制文件上设置setuid special mode,可能允许Apache以邮件用户身份发送邮件。
(我在运行之后重新启动了apache和sendmail守护进程,但我不确定哪些实际需要重启)
我首先对引起这个问题感到非常好奇但是......
答案 1 :(得分:1)
这个对我有用。在Ubuntu机器上点击这个之前我有其他错误。让我分享一下,以防其他人遇到他们。我得到了 NOQUEUE:SYSERR(www-data):不能chdir(/ var / spool / mqueue-client /):权限被拒绝。
usermod -a -G smmsp www-data
chmod 770 /var/spool/mqueue-client (don't use 775, it gives dangerous permission error in the log)
service apache2 restart (this is required for the above to take effect)
Now sending email gives a different error.
- NOQUEUE: SYSERR(www-data): can not write to queue directory /var/spool/mqueue-client/
- chmod 4555 /usr/sbin/sendmail
- Above command fixed the email issue. => didn't see any error in the mail.log this time.