Apache запущен от имени пользователя root, а не от имени пользователя, указанного в httpd.conf

Apache запущен от имени пользователя root, а не от имени пользователя, указанного в httpd.conf

Я пытаюсь разрешить WordPress загружать файлы в папку wp-content, не устанавливая для этой папки права доступа 777. Однако у меня возникли некоторые трудности.

Группа и пользователь, заданные для папки wp-content, соответствуют группе и пользователю, которые Apache настроен на использование в httpd.conf. Однако, когда я запускаю команду ниже, кажется, что Apache на самом деле работает как root, а не как пользователь, указанный в httpd.conf.

Конфигурация httpd.conf

Пользователь ххх
Группа ггг

Команда, запускаемая для определения пользователя, от имени которого запущен Apache

пс aux | grep httpd

Вывод команды выше

513 1294 0,4 ​​1,4 316420 54864 ? S 08:30 0:06 /usr/sbin/httpd

513 — правильный UID для пользователя xxx, так что он отображается правильно. Однако я все еще не могу загружать файлы в WordPress, не установив разрешения для папки wp-content на 777.

Может ли кто-нибудь сказать мне, в чем здесь проблема?

решение1

Apache всегда должен запускаться как root, затем он использует setuid для переключения на пользовательский контекст, указанный в httpd.conf.

Без root (uid = 0) вы не сможете создать прослушивающий сокет на привилегированных портах (ниже 1024)

Подробности читайте в следующих документах:

Из первой ссылки:

# ps -ef | grep -i http | awk '{print $1}'
root
apache
apache
apache
apache
apache

Связанный контент