Вопрос: Выясните, какой пользователь Apache работает как?


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

Я нашел предложение, что вы можете посмотреть в httpd.conf, и будет строка «Пользователь», но в моем файле httpd.conf такой строки нет, поэтому я думаю, что Apache работает как пользователь по умолчанию. Однако я не могу понять, что это такое.

Итак, мой вопрос:

  • как узнать, что по умолчанию пользователь
  • мне нужно изменить пользователя по умолчанию
  • если ответ «да», и я меняю по умолчанию, отредактировав httpd.conf, это, вероятно, что-нибудь повесить?

Благодаря!


181
2018-03-24 16:22


Источник


почему этот вопрос был опущен? Да, он был обновлен, поскольку он был дан ответ в другом месте, но я не вижу необходимости понижать голос? Это отличный вопрос? Возможно, наш избиратель, занимающийся голосованием, хотел бы добавить к нему конструктивный комментарий? - Bryan
Возможно, вы захотите опубликовать это обновление в качестве ответа и принять его, так как вы в настоящее время находитесь в очереди без ответа. - Fahad Sadah
+1 для того, чтобы быть сказанным на StackOverflow; некоторые пользователи кажутся настойчивыми при запуске новых пользователей - wruckie
Связанный вопрос больше не существует - pal4life
Следующий вопрос: что делать, потому что его один из двух пользователей, например root а также www-data, Как вы даете «правильной» группе Apache разрешение на доступ к чему-то? - jww


Ответы:


ps aux | egrep '(apache|httpd)' как правило, покажет, что работает apache.

Обычно вам не нужно менять пользователя по умолчанию, «никто» или «apache» обычно являются прекрасными пользователями. Пока его не «корень»;)

edit: более точная команда для улавливания двоичных файлов apache


187
2018-04-19 23:19



Yup, или это будут www-данные на Ubuntu. - gravyface
... и Debian. :) - cubuspl42
Эта команда показывает мне список вещей, большинство из которых apache но 1 из root слишком. - User
У меня 3 процесса (/usr/sbin/apache2 -k start), пользователь root и два других www-data, Должен ли я быть обеспокоен? - zundi
@zundi, служба запускается с правами root, чтобы делать что-то вроде привязки к зарезервированным портам (например, 80 и 443). Затем он запускает любое настроенное количество процессов, выполняет работу с веб-сервером и любые другие задачи, как определенные пользователи. Таким образом, запросы обрабатываются не-привилегированными процессами. Вы заметите, что идентификатор родителя (PPID) одинаковый для всех других процессов. Эта идея является PID для этого одного процесса, выполняемого как root. - Kevin


Вы можете попробовать следующую команду:

ps -ef | egrep '(httpd|apache2|apache)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'

29
2018-04-23 13:53





Согласно ubuntuforums.org, на Ubuntu пользователь по умолчанию для apache2 www-data,

Видно, что на Ubuntu 13.10 Saucy.


Из Ларс Нуден на вышеупомянутом форуме.

Чтобы убедиться, что действительно установлен [пользователь], проверьте фактические файлы конфигурации.   Зонтичный файл, apache2.conf будет иметь что-то вроде следующего,

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Это ссылка на переменные окружения, установленные в /etc/apache2/envvars,    mod_suexec также позволяет запускать сценарии еще и другого пользователя и группы.

Чтобы найти любые виртуальные хосты, которые могут использовать альтернативных пользователей, группы или и то, и другое, проверьте конфигурации.

$ egrep "^User|^Group|^SuexecUserGroup" /etc/apache2/apache2.conf /etc/apache2/sites-available/*.conf

Для дистрибутивов на основе Red Hat это будет (обычно его пользовательский запуск httpd apache):

$ egrep "^User|^Group|^SuexecUserGroup" /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf

8
2018-06-10 13:14





Я знаю, что это старый пост, но он по-прежнему указан как без ответа, поэтому я сделаю предложение. Если вы не можете найти, какой пользователь или группа Apache работает, возможно, попробуйте открыть файл httpd.conf. Там должна быть запись для «Пользователь» и «Группа». Мало того, что вы можете видеть, какой пользователь Apache должен работать как, но вы можете изменить его, если вы чувствуете необходимость сделать это.


7
2018-04-23 07:53





Вы можете включить строку кода в свой PHP-скрипт:

echo exec('whoami');

7
2017-09-26 02:08



Остерегайтесь здесь, это показывает, что пользователь работает под PHP, а не пользователь Apache. Если вы используете mod_php, то они одинаковы, но если, как сейчас очень часто, вы используете что-то другое (например, php_fpm), они могут быть легко разными. - benz001


Этот код будет - более или менее - в алфавитном порядке перечислять все пользователи, не являющиеся пользователями root, которые запускают процессы, содержащие apache (или чье имя содержит apache)

ps aux | grep -v root | grep apache | cut -d\  -f1 | sort | uniq

5
2018-03-06 12:28



Список, вероятно, будет включать пользователей, которые запускают процессы, такие как «grep apache», например, ваше прекрасное я. - mwfearnley


  • Чтобы узнать пользователя, вы можете просто использовать ps aux | grep apache пока он работает.
  • Вам не нужно, но если Apache работает под управлением root, есть проблемы с безопасностью.
  • В-третьих, изменение пользователя Apache изменит его права на доступ к некоторым каталогам. Вы должны убедиться, что / var / www (или везде, где у вас есть веб-сайты) доступны для нового пользователя и группы.
  • В системах, на которых я смотрел, apache всегда устанавливался с помощью apache: apache (или аналогичного) в качестве пользователя и группы, поэтому он, вероятно, должен быть уже установлен таким образом.

ПРИМЕЧАНИЕ. Это тот же ответ, который я дал Переполнение стека,


4
2017-08-01 14:49





использование apachectl -S, покажет что-то пользователю и группе apache, что-то вроде этого

User: name="_www" id=70
Group: name="_www" id=70

4
2017-09-11 00:28



Спасибо, на моем mac я вижу, что apache работает как «_www». - Mercury


Или вы можете проверить конфигурационный файл apache и искать владельца и группу.


2
2018-04-23 15:33





Как было предложено Noyo Вот:

APACHE_USER=$(ps axho user,comm|grep -E "httpd|apache"|uniq|grep -v "root"|awk 'END {if ($1) print $1}')

А потом:

echo $APACHE_USER

2
2018-01-03 11:36



Получить пользователя (командная строка ubuntu): echo $ APACHE_USER - Jadeye


Альтернативный подход, по крайней мере для дистрибутивов на основе Debian / Ubuntu, - это используйте тот же метод, что и Apache, чтобы установить его пользователя и группу: источник /etc/apache2/envvars


0
2018-02-04 00:55