Запуск сценария оболочки из PHP от имени другого пользователя (не root) - PullRequest
3 голосов
/ 30 июня 2010

Я пытаюсь запустить сценарий оболочки, принадлежащий непривилегированному пользователю из PHP, на сервере Ubuntu.Из-за проблем с разрешениями запускать его с exec() нецелесообразно, так как он запускается www-data.Я немного погуглил и нашел ссылки на varius на suExec (что кажется слишком сложным, чтобы работать с такой маленькой проблемой), установил бит suid и интересный подход здесь, в Stackoverflow, с использованием сервера Python, прослушивающего отправленные командыPHP.

Во всяком случае, из всех этих решений я склоняюсь к тому, что касается установки бита suid, пробовал его, и он не работал: chmod u+s script.sh, и мои журналы Apache по-прежнему показывают ошибки прав доступа,так что я знаю, что скрипт работает не как владелец, а как www-data.

Что мне нужно сделать, чтобы это работало, и есть ли более простое решение этой проблемы?

1 Ответ

4 голосов
/ 30 июня 2010

Взгляните на страницу руководства для sudo: sudo -u your_other_user позволит вам выполнить команду от имени другого пользователя.

Также используйте man sudoers для поиска параметров, по которым пользователь может выполнять какие команды с помощью sudo.

...