Я должен создать скрипт, который запускается через crontab. Я установил новую Ubuntu на виртуальной машине и начал тестирование
Поэтому я понял, что PHP не записывает файлы (с file_put_contents) в папку / var / www / html /, когда я запускаю скрипт в Терминале (sudo php filename.php)
Если я удаляю sudo из команды, это говорит, что разрешение отклонено. Я также попытался создать другую папку внутри ../html/, а также попробовал chmod 777. Кажется, ничего не работает. Я видел эту проблему несколько лет назад, но я не могу найти решение
Кто-нибудь из вас знает, что происходит?
Проверьте исполняемый файл php, чтобы увидеть, не вызывают ли права setuid PHP отбрасывать привилегии суперпользователя, которые вы дали ему с помощью sudo.
Я знаю, что вы не запускаете это через веб-сервер, но для тех, кто это делает, я нахожу слишком страшным запускать PHP с повышенными привилегиями. Если мне действительно нужно сделать что-то опасное, я изолирую это от как можно меньшего количества кода и закодирую как скрипт на perl с suid root. (Нет, вы не можете сделать это на виртуальном хостинге.) Затем я выхожу на Perl из PHP. В этом случае Perl автоматически запускается в режиме Taint, заставляя вас очистить все ваши входные данные, прежде чем продолжить. (Эта техника примерно с 2001 года, возможно, сейчас есть лучший способ.)
…Том Робинсон
Других решений пока нет …