Основной Apache pid от имени root, хотя настроен, чтобы быть никем?

Я полагаю, что я все правильно настроил, когда построил сервер (возможно, это был предварительно сконфигурированный LAMP, который поставлял Vino-хост Linode, который настраивал все)

Кажется, что каждый процесс Apache выполняется от имени пользователя nobody, что и было задумано в конфигурации, однако более низкий PID (самый продолжительный процесс Apache) все еще работает под root, а мои PHP-скрипты, кажется, сообщают текущему пользователю как root через спрашивая в phpinfo().

это связано с тем, что root может порождать Apache, и его дочерние элементы корректно создаются под определенным пользователем nobody согласно его конфигурации? Обрабатываются ли какие-либо из реальных страниц через этот корневой процесс Apache, или это просто родитель?

Я немного обеспокоен, однако у меня нет проблем с запуском нового Apache со свежим умом, чтобы исправить это, если это немного больше, чем ошибка конфигурации.

Незначительное добавление дополнительной информации: кажется, что $_SERVER['user'] является пользователем root, хотя $_SERVER['apache_run_user'] (похожий на это) показывает www-данные (хотя и не никто), я не уверен, что это ошибка PHP, возможно я попробую отредактировать корневой файл в PHP и посмотреть..

редактировать 2: нет, PHP не может редактировать корневые файлы. Предположим, что $_SERVER['user'] (и хакерский скрипт аудита) неверно считать PHP root. все еще задаюсь вопросом о процессе Apache, хотя.

1 ответ

Решение

это связано с тем, что root может порождать Apache, и его дочерние элементы корректно создаются под определенным пользователем nobody согласно его конфигурации?

Да.

Обрабатываются ли какие-либо из реальных страниц через этот корневой процесс Apache, или это просто родитель?

Нет, никакие страницы не обрабатываются корневым процессом, и да, это только родитель. Так должно быть по следующей причине.

Apache связывается с привилегированным портом (т. Е. С портом с меньшим числом, до 1023 включительно), в основном 80 или 443. Для привязки к привилегированному порту необходимо быть пользователем root: именно поэтому они называются "привилегированными портами".

Если вы проверите свой основной процесс sshd, вы увидите, что этот процесс тоже запускается от имени пользователя root. Теперь подключайтесь через ssh. Вероятность того, что ваш личный процесс sshd, разветвленный от основного, выполняется под вашей собственной непривилегированной учетной записью.

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