Я использую CentOS 6, так как httpd выполняется как пользователь ‘apache’. Из соображений безопасности я хочу использовать sudo для выполнения через exec от имени пользователя ‘aq’:
<?php exec("/usr/bin/sudo -u aq somescript.sh",$output,$return_val);?>
С Visudo я добавил следующую строку:
apache ALL = (aq) NOPASSWD: ALL
Кроме того, я временно предоставил apache в качестве оболочки для входа в систему (/ bin / bash), чтобы иметь возможность тестировать
/usr/bin/sudo -u aq somescript.sh
прямо который работал.
php exec завершается неудачно, так как $ return_val выдает ‘1’, если вызывается sudo.
Закомментируйте эту строку из / etc / sudoers
Значения по умолчанию requiretty
Я проверил ваше дело несколькими способами, и это дает мне успех.
Других решений пока нет …