2014-09-23 2 views
2

Я запускаю CentOS 6, так как httpd выполняется как пользователь 'apache'. По соображениям безопасности, я хочу использовать Sudo будет выполняться с помощью Exec как пользователь «водн»:php exec с sudo не работает на CentOS

<?php exec("/usr/bin/sudo -u aq somescript.sh",$output,$return_val);?> 

С visudo я добавил следующую строку:

apache ALL = (aq) NOPASSWD: ALL 

Кроме того, я временно дал апача в качестве логина (/ bin/bash), чтобы иметь возможность проверить

/usr/bin/sudo -u aq somescript.sh 

, который работал, и работал.

php exec не работает, так как $ return_val выдает '1', если вызывается sudo.

+0

sestatus отключен, поэтому SELINUX выключен. – Stefan

ответ

2

Комментарий эту строку из/и т.д./sudoers

Defaults requiretty

I'v испытанный ваш случай несколько способов муравей это один дает мне успех.

+0

плюс 1,000,000 upvotes вам! –

Смежные вопросы