Я запускаю предварительный форк MPM Apache на сервере Ubuntu 10.04. Он прослушивает порт 8080. Один процесс работает как root
, а дочерние процессы выполняются как www-data
. Это как рекламируется.
Однако root
процесс тоже отвечает на запросы! Поэтому на некоторые запросы отвечают как root
, и большинство из них www-data
. Конечно, это прискорбно.
В чем причина этого? httpd.conf говорит
MinSpareServers 2
MaxSpareServers 5
StartServers 1
MaxClients 50
Я считаю, что то, что вы видите, совершенно безопасно: родительский процесс внутренне сбросил корневые perms до www-данных для битов, которые выполняют обработку запроса. Сам процесс, конечно, по-прежнему принадлежит пользователю root, так как он был запущен root, и ему все еще нужно запускать некоторые вещи от root, если они вызываются (например, обработчики сигналов для обработки перезагрузки файла (ов) конфигурации и перенастройки сервера).