У меня есть скрипт 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
. Я изменил каталог, в который он выводит свои выходные данные, чтобы иметь одинаково разрешительные разрешения.
Он все еще не будет работать.
Единственное, о чем я могу думать, это о том, что скрипт находится в моем домашнем каталоге. Если это проблема, я был бы удивлен (потому что мой веб-корень также находится в моем домашнем каталоге), но я готов к исправлению. Если это проблема, могу ли я ее исправить, не требуя прав суперпользователя?
Если это не связано с нахождением в моем домашнем каталоге, в чем проблема? И как мне это исправить?