Запуск скрипта оболочки из PHP как другого (не root) пользователя

Я пытаюсь запустить сценарий оболочки, принадлежащий не-привилегированному пользователю из 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.