Приводит ли apache или mod_php к игнорированию флага SUID при использовании команды shell_exec из скрипта PHP, доступного через Интернет?
Я пытаюсь разрешить доступному через Интернет сценарию PHP переименовать некоторые файлы, к которым у пользователя apache нет доступа на запись. Я не хочу давать ему доступ для их записи, так как я хочу, чтобы только один управляемый сценарий мог это сделать. Я пытаюсь избежать SUDO и необходимой конфигурации или головной боли / небезопасности использования очереди, вызываемой из cron привилегированных пользователей, и казалось, что я смогу использовать SUID для этого.
Если вам нужна дополнительная информация, у меня есть открытый аналогичный вопрос, но я думаю, что он слишком подробный, и люди не видят того, о чем я спрашиваю.
https://stackoverflow.com/questions/6432931/suid-issues-with-php-apache
Насколько мне известно, mod_php всегда будет запускать ваш скрипт как uid пользователя apache. Если вы хотите обслуживать скрипты php под другим uid с помощью apache, вы можете проверить это с помощью fastcgi. Общие инструкции здесь но вы можете (и должны) искать инструкции по установке, специфичные для вашей системы упаковки ОС (apt / yum / etc).
Странный вариант, но, возможно, вы можете указать процессу apache, где у него есть доступ, что он хочет - тогда у вас есть задание cron или что-то, вызывающее сценарий, который интерпретирует то, что указал процесс apache, и выполняет желаемое действие.
Для меня это чертовски взломано. Но что бы вы ни делали, возможно, это правильный путь. SUID звучит как очень скользкая дорожка с точки зрения безопасности. Думаю, я предлагаю небольшое улучшение.