Что (кроме необходимости быть пользователем root) может вызвать ошибку прав доступа при использовании PHPs shell_exec? - PullRequest
0 голосов
/ 17 сентября 2010

У меня есть скрипт bash, который запускает без необходимости быть пользователем root .

Но когда я запускаю его через shell_exec() (или system(), или exec()), вот так:

return system("/home/tom/rrd/rrdtool-drawgraph.sh $interval $multiples - debug 2>&1;");

Я получаю следующее сообщение:

sh: /home/tom/rrd/rrdtool-drawgraph.sh: В доступе отказано

(Как ни странно, сообщение повторяется. Не уверен, что это уместно? Редактировать: Похоже, оно не повторяется, когда я использую обратные тики вместо shell_exec. Перейти к рисунку.)

Я пытался использовать права доступа 777. Я пытался изменить владельца и группу на www-data. Я изменил каталог, в который он выводит свои выходные данные, чтобы иметь одинаково разрешительные разрешения.

Он все еще не будет работать.

Единственное, о чем я могу думать, это о том, что скрипт находится в моем домашнем каталоге. Если это проблема, я был бы удивлен (потому что мой веб-корень также находится в моем домашнем каталоге), но я готов к исправлению. Если это проблема, могу ли я ее исправить, не требуя прав суперпользователя?

Если это не связано с нахождением в моем домашнем каталоге, в чем проблема? И как мне это исправить?

1 Ответ

0 голосов
/ 18 сентября 2010

Оказывается, было из-за расположения сценариев.

Я переместил все это в /usr/share/rrdscripts, и он отлично работает.

Как ни странно, тамне проблема с разрешениями для выходных файлов: сценарий все еще может записывать в выходную папку в моем домашнем каталоге.

...