Я пытаюсь запустить сценарий оболочки, принадлежащий не-привилегированному пользователю из PHP на сервере Ubuntu. Проблемы с разрешениями запускают его с exec()
непрактично, так как это www-data
который его запускает. Я немного искал Google и нашел ссылки varius на suExec (что кажется слишком большим количеством хлопот, чтобы работать над такой небольшой проблемой), установка бита suid и интересный подход здесь, в Stackoverflow, включающий сервер Python, который прослушивает переданные команды по PHP.
В любом случае, из всех этих решений я склоняюсь к тому, что касается установки бита suid, попробовал его, и он не работал: chmod u+s script.sh
, и мои журналы Apache все еще показывают ошибки разрешений, поэтому я знаю скрипт не работает как его владелец, а как www-data
.
Что мне нужно сделать, чтобы заставить это работать, и есть ли более простое решение этой проблемы?
Взгляните на страницу man для sudo: sudo -u your_other_user
позволит вам выполнить команду как другой пользователь.
Также используйте man sudoers для поиска параметров, на которых пользователь может выполнять команды с помощью sudo.