sendmail的正确权限配置是什么

Pho*_*nix 2 sendmail ubuntu-12.04

这个问题来自一个类似于这个问题的问题https://serverfault.com/questions/320607/ubuntu-jaunty-sendmail-php-mail-premission-errors

但那些答案并没有解决我的问题

我有一个PHP应用程序,它使用PHPMailer发送电子邮件.

我在我的ubuntu 12.04 LTS上安装了sendmail

sudo apt-get install sendmail
sudo sendmailconfig
Run Code Online (Sandbox Code Playgroud)

但是应用程序未能发送任何邮件.在mail.err中它说:

Apr 14 00:31:42 AY sendmail[32241]: NOQUEUE: SYSERR(www-data): can not chdir(/var/spool/mqueue-client/): Permission denied
Run Code Online (Sandbox Code Playgroud)

而www-data是apache2的用户名.

然后我从互联网上关注了一些指南,将www-data添加到smmsp组:

sudo usermod -a -G smmsp www-data
Run Code Online (Sandbox Code Playgroud)

现在当我

groups www-data
Run Code Online (Sandbox Code Playgroud)

我明白了

www-data : www-data smmsp
Run Code Online (Sandbox Code Playgroud)

并且/ etc/group中的行是:

smmsp:x:114:www-data
Run Code Online (Sandbox Code Playgroud)

此外,我确保访问/ var/spool/mqueue-client /是770

/var/spool]$ ls -la
total 28
drwxr-xr-x  7 root   root  4096 Apr  2 00:21 .
drwxr-xr-x 11 root   root  4096 Apr 14 03:30 ..
drwxr-xr-x  5 root   root  4096 Aug  6  2012 cron
lrwxrwxrwx  1 root   root     7 Aug  6  2012 mail -> ../mail
drwxr-s---  2 smmta  smmsp 4096 Apr 14 06:25 mqueue
drwxrws---  2 smmsp  smmsp 4096 Apr 14 06:25 mqueue-client
drwxr-xr-x  2 root   root  4096 Apr 13  2012 plymouth
drwxr-xr-x  2 syslog adm   4096 Mar 31  2012 rsyslog

/]$ ls -ld /var/spool/mqueue-client/ /usr/sbin/sendmail
lrwxrwxrwx 1 root  root    26 Apr  2 00:21 /usr/sbin/sendmail -> /etc/alternatives/sendmail
drwxrws--- 2 smmsp smmsp 4096 Apr 14 06:25 /var/spool/mqueue-client/
Run Code Online (Sandbox Code Playgroud)

但是当我尝试发送邮件时仍然会出错

Apr 14 03:26:57 AY sendmail[6131]: NOQUEUE: SYSERR(www-data): can not write to queue directory /var/spool/mqueue-client/ (RunAsGid=33, required=114): Permission denied
Run Code Online (Sandbox Code Playgroud)

而33是www-data的gid

www-data:x:33:
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让sendmail工作但保持安全?此外,生产环境中sendmail的正确权限配置(用户,组和目录访问等)是什么?

AnF*_*nFi 6

标准安装sendmail-8.12 +需要安装sendmail二进制文件作为设置 ID.
(/ usr/sbin/sendmail - > ... - > /usr/lib/sm.bin/sendmail在你的情况下)

-rwxr-sr-x 1 root smmsp ...

如果是您的软链接,请尝试:

 chown root:smmsp /usr/lib/sm.bin/sendmail
 chmod 2555 /usr/lib/sm.bin/sendmail
Run Code Online (Sandbox Code Playgroud)

推荐的权限在sendmail发行版的SECURITY文件中描述.在我的debian上,文件/usr/share/doc/sendmail-doc/sendmail/SECURITY.gzsendmail-doc包安装.