Ваш скрипт работает с теми же правами, что и процесс Apache. В соответствии с надлежащей практикой безопасности ваш веб-сервер должен иметь как можно меньше разрешений на изменение файлов, которые могут сами запускаться веб-сервером.
Поскольку это звучит как то, что вы хотите сделать, трюк состоит в том, чтобы как можно меньше ослабить разрешения, чтобы получить желаемый результат.
Моя рекомендация - заглянуть в программу sudo
. Он может запускать программы как более привилегированные пользователи и предоставляет некоторые разумные средства управления доступом. Основная идея заключается в создании сценария, который принадлежит и доступен для записи только пользователю root. Затем разрешите пользователю apache (или httpd, или тому, что ваша система называет пользователем, на котором запущен Apache), выполнить этот сценарий через sudo
как пользователь с правами на запись в /opt
. Если вам удастся выполнить скрипт как пользователь с меньшими правами, чем root, это тоже хорошо.
При условии, что у вас есть хорошая проверка ошибок в вашем скрипте и вы соблюдаете все правила безопасности, вы будете в достаточной безопасности.
Все это говорит, решительно подумайте о том, чтобы заплатить опытному разработчику, настроенному на безопасность, чтобы помочь вам с его настройкой. Настройка системы, подобной этой, требует другого подхода к безопасности слов, и вы не можете получить ответ от SO. В противном случае вам, возможно, придется объяснить своему начальнику, как 13-летний ребенок из какой-то случайной страны удалил все данные ваших компаний или, что еще хуже, опубликовал их в BitTorrent.