Можно / нужно ли запускать PHP-FPM и Apache под одним и тем же пользователем /uid и / или группой /gid?
Я решил переустановить PHP и Apache своего бокса сегодня, чтобы попробовать FPM, никогда не использовал его раньше и хотел сделать некоторые тесты производительности, так как я слышал, что это намного быстрее. Конечно, сразу после компиляции и установки PHP с поддержкой FPM первым делом нужно было взглянуть на конфигурацию, и я обнаружил, что по умолчанию она настроена для режима nobody / nobody. Проблема в том, что у меня настроено довольно много виртуальных серверов, и доступ к их файлам ограничен пользователем и группой apache / apache. Итак, вот несколько вопросов, которые приходят мне в голову:
- Почему PHP-FPM запускается по умолчанию ни с кем / ни с кем?
- Могу ли я изменить это?
- Должен ли я изменить это?
- Считается ли угрозой безопасности запуск PHP-FPM и Apache под одним пользователем / группой? Если так, то почему?
- Какие еще риски / соображения следует учитывать при работе под другим пользователем и под тем же пользователем, что и Apache?
Примечание: я использую PHP 5.6.16 и Apache 2.4.16, если это имеет значение.
1 ответ
В целях безопасности вы должны запускать каждый пул PHP-FPM в своем собственном UID. В случае проблем с безопасностью на одном из ваших php-сайтов, он не будет распространяться на содержимое других веб-сайтов.
Вы должны предоставить Apache только право на использование статического контента (только для чтения).