2012-03-14 87 views
3

我不能讓sendmail工作從Apache + PHP,除非我更改/ var/spool/clientmqueue 777的權限。與權限發送郵件與Apache + PHP的權限錯誤,而沒有更改權限777

所有權的/ var /閥芯/ 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 

在maillog的,如果我設置文件夾的權限,以770

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正在閱讀組郵件的工作。我知道錯誤是apaches主要GID 48,但它也共享組12.

任何幫助將是可怕的。

回答

1

我今天有同樣的問題(並在這裏尋找答案)。

我終於找到了this overview;運行從該列表下面的命令修復該問題對我來說:

chmod 4555 /usr/sbin/sendmail 

這臺setuid special mode上sendmail程序,可能允許Apache發送郵件的郵件用戶。

(我跑後重新啓動兩個apache和sendmail的守護進程,雖然我不能確定它的實際需要重啓的)我

仍然非常好奇,什麼在第一造成這個問題地方然而...

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.