Intereting Posts
Форма PHP mail () не заполняет отправку электронной почты Файловые привязки с PHP5 SOAP Динамически отправлять сообщение WordPress Не помещается на место, пакет, загруженный классом, требуется от композитора, делает php throw Класс не найден Выполнение javascript-скрипта после загрузки ajax-страницы – не работает Почему не работает моя проверка кода CodeIgniter? Как создать метод, который вызывается каждый раз при вызове публичного метода? Как проверить результаты запроса db, используя PHP PDO Codeigniter 2 – функция обратного вызова в My_Controller Каким будет лучший способ отправить NSData через PHP в MySQL? Фильтровать XML по элементам Mysql не может выполнять более одного запроса за раз Доступ к значению StdClass с помощью двоеточия: защищенный Подготовленные выражения PHP PDO и привязка значений приводят ошибку недопустимого номера параметра Как отправить данные формы и динамически отобразить их с помощью ajax на одной странице

PHP shell_exec () и sudo: должен быть установленным root

У меня есть shell_exec() которая обращается к каталогу выше моего корня документа, поэтому мне нужно использовать sudo «как root», чтобы это произошло. (Я понимаю проблемы безопасности и принимаю меры для его решения).

Проблема в том, когда я запускаю shell_exec() я получаю ошибку «sudo: должно быть setuid root» в файле apache error_log.

Я думал, что решение было для chmod 4750 сценария bash, который вызывается моим sheel_exec() но это не делает работу.

Что такое «sudo: должен быть setuid root», пытаясь рассказать мне и как я могу его решить?

Является ли сам исполняемый файл sudo setuid root? Возможно, вам понадобится

 chown root: /usr/bin/sudo chmod u+s /usr/bin/sudo 

В качестве альтернативы, вообще пропустите sudo . Если ваш скрипт принадлежит root и имеет свой собственный бит setuid, тогда вам не нужно использовать sudo для получения привилегий root. На самом деле, это может быть более безопасным таким образом; вы гарантируете, что ваш веб-пользователь может использовать только этот скрипт, без необходимости редактировать sudoers. Для этого удалите sudo из shell_exec() :

 <?php shell_exec('/path/to/your/command'); ?> 

Вы проверяли разрешения для своего скрипта?

Кто владеет сценарием?

Имеет ли пользователь сети права на sudo?

Чтобы устранить эту проблему, вам необходимо выполнить chown и chmod sudo file как root, как показано ниже.

 chown root:root /usr/bin/sudo chmod 4111 /usr/bin/sudo chmod 0440 /etc/sudoers