Всё, я добился своего.
Мой скрипт запускался под пользователем, у которого нет прав (www-data).
Чтобы скрипт запустился, я установил модуль sudo и в его конфиге (visudo) добавил строчку: www-data ALL=NOPASSWD: ALL
Перед самой командой я теперь приписываю sudo -S и она отрабатывает.
oxidmod хотя бы <сарказм> приписывайте, а то еще за руководство к действию примут. fred55rus прописать в sudoers разрешения для пользователя из-под которого работает php, затем вызывать его как то так
проверьте какой у вас путь к sudo whereis sudo
а вы точно под рутом? whoami что выводит?
Категорически не советую использовать php из-под рута если это для работы как веб приложение.
Создайте пользователя для php, нужные доступы давай те через sudo.
Если же это консольное приложение, для запуска руками/кроном, то можно и с под рута.
так-с, вчера уже не дочитал что вы все же с браузера запускаее скрипт.
Так что есть подозрение что он пытаеться выполниться из-под пользоветеля nginx.
Попробуйте вариант с sudo, но для пользователя *nginx*, ну или запускайте сам веб-сервер из-под рута(что я ранее не советовал, но для теста можно попробовать)
Swartalf: дак я всё из под рута запускаю: и nginx, и php. Только сам скрипт выполняется в браузере со стороннего компьютера.
У меня появилась теория, что все подключения к серверу через браузер скидываются в группу пользователей www-data, соответственно этой группе нужно как-то дать права на выполнение команд, только вот я пока не понял как это сделать.
Вот не знаю кто скрипт запускает, теоретически его запускает любой веб-пользователь из браузера. Скорее всего это и есть www-data. Но могу точно сказать, что сам php модуль запускается из под рута и имеет его права, я это выставил строчками: