Apache + mod_php игнорирует SUID?

Приводит ли apache или mod_php к игнорированию флага SUID при использовании команды shell_exec из сценария PHP, доступ к которому осуществляется через Интернет?

Я пытаюсь разрешить доступ к веб-сценарию PHP для переименования некоторых файлов, к которым у пользователя apache нет прав записи. Я не хочу давать ему доступ для их написания, поскольку я хочу, чтобы только один контролируемый скрипт мог это делать. Я пытаюсь избежать SUDO и необходимой конфигурации или головной боли / небезопасности использования очереди, вызываемой из привилегированного пользователя cron, и мне показалось, что я должен быть в состоянии использовать SUID для достижения этой цели.

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

https://stackoverflow.com/questions/6432931/suid-issues-with-php-apache

2 ответа

Странный вариант, но, возможно, вы можете заставить процесс apache указывать, где он имеет доступ, к чему он хочет - тогда у вас есть задание cron или что-то, вызывающее скрипт, который интерпретирует то, что указал процесс apache, и выполняет желаемое действие.

Это звучит как хакерство для меня. Но что бы вы ни делали, возможно, это путь. SUID звучит как очень скользкий склон с точки зрения безопасности. Я думаю, что я предлагаю небольшое улучшение.

Насколько я знаю, mod_php всегда будет запускать ваш скрипт как uid пользователя apache. Если вы хотите использовать php-скрипты под другим uid с использованием apache, вы можете проверить это с помощью fastcgi. Здесь приведены общие инструкции, но вы можете (и должны) искать инструкции по установке, относящиеся к вашей системе упаковки ОС (apt / yum / etc).

Другие вопросы по тегам