Обработка запросов Apache в MPM - PullRequest
0 голосов
/ 30 октября 2010

Когда установлено соединение с портом 80, я прочитал, что эти клиентские запросы обрабатываются дочерними серверами (в случае prefork MPM) или серверным потоком (в рабочем MPM), но не главным сервером (запущенный процесс apacheсначала пользователем root, который отвечает за разветвление нового ребенка).Но как эти дочерние серверы и серверные потоки работают как непривилегированные пользователи и как они могут получить доступ к привилегированному порту 80, что может сделать только «главный сервер».Пожалуйста, пролите немного света на это.Я нигде не видел объяснений.

1 Ответ

2 голосов
/ 30 октября 2010

Вам нужны только привилегии для запуска прослушивания на привилегированном порту.Если процесс запущен от имени пользователя root, он может связать () с портом 80, а затем отбросить привилегии.Он больше не будет пользователем root, но до тех пор, пока он не закроет файловый дескриптор, который прослушивает порт 80, он по-прежнему сможет принимать новые соединения через порт 80.

Для разветвления новых процессов вам потребуетсябез особых прав ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...