fatal: open /etc/postfix/main.cf: Permission denied

Contexte : CentOS 7 avec SELinux actif

L’envoi de mail fonctionne en ligne de commande (avec la commande mail) mais j’obtiens l’erreur suivante dans /var/log/maillog lorsque le mail est envoyé depuis PHP :

fatal: open /etc/postfix/main.cf: Permission denied

Ou sa variante (sans postfix):

sendmail[14785]: NOQUEUE: SYSERR(apache): /etc/mail/sendmail.cf: line 0: cannot open: Permission denied

Ce blocage est lié à SELinux et il suffit d’exécuter la commande suivante pour débloquer la situation :

setsebool -P httpd_can_sendmail=1

En effet, lorsque l’on regarde /var/log/audit/audit.log, un message denied signale que l’accès à main.cf est interdit au processus sendmail :

type=AVC msg=audit(1448197771.367:49668): avc:  denied  { read } for  pid=15312 comm="sendmail" name="main.cf" dev="vda1" ino=26176007 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:postfix_etc_t:s0 tclass=file

Au cas où vous demanderiez d’où sort ce boolean et pourquoi le modifier, sachez que vous pouvez le retrouver avec sa description via la commande semanage :

$ semanage boolean --list | grep sendmail
httpd_can_sendmail             (on   ,   on)  Allow httpd to can sendmail

Source : http://selinuxproject.org/page/ApacheRecipes

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s