Я хочу защитить каталог загрузки файлов на моем сервере, как красиво описано здесь, но у меня есть одна проблема, прежде чем я смогу следовать этим инструкциям. Я не знаю, как работает пользователь Apache.
Я нашел предложение, что вы можете посмотреть в httpd.conf, и там будет строка «Пользователь», но в моем файле httpd.conf такой строки нет, поэтому я предполагаю, что Apache работает как пользователь по умолчанию. Я не могу узнать, что это такое, хотя.
Итак, мой вопрос (есть):
- как узнать, что пользователь по умолчанию
- мне нужно изменить пользователя по умолчанию
- если ответ «да», и я изменил пользователя по умолчанию, отредактировав httpd.conf, это может что-то испортить?
Спасибо!
apache-2.2
eikonomega
источник
источник
root
иwww-data
. Как вы даете «правильной» группе Apache разрешение на доступ к чему-либо?Ответы:
ps aux | egrep '(apache|httpd)'
как правило, покажет, что работает Apache.Обычно вам не нужно менять пользователя по умолчанию, «nobody» или «apache» обычно хорошие пользователи. Пока это не "корень";)
edit: более точная команда для перехвата двоичных файлов apache
источник
apache
кроме 1root
./usr/sbin/apache2 -k start
), один пользователь,root
а два другихwww-data
. Должен ли я быть обеспокоен?Вы можете попробовать следующую команду:
источник
Используйте
apachectl -S
, что покажет что-то пользователя и группы Apache, что-то вроде этого:источник
Согласно Ubuntuforums.org , в Ubuntu пользователь по умолчанию для apache2 - это
www-data
.Видно быть правдой на Ubuntu 13.10 Saucy.
От Ларса Нудена на вышеуказанном форуме.
Для дистрибутивов на основе Red Hat это будет (как правило, его пользователь, работающий с httpd
apache
):источник
Я знаю, что это старый пост, но он все еще указан как оставшийся без ответа, поэтому я сделаю предложение. Если вы не можете определить, какой пользователь или группа Apache работает, возможно, попробуйте открыть файл httpd.conf. Там должна быть запись для "Пользователь" и "Группа". Вы можете не только увидеть, какой пользователь Apache должен работать, но и изменить его, если почувствуете необходимость в этом.
источник
Вы можете включить строку кода в ваш скрипт PHP:
источник
Этот код - более или менее - в алфавитном порядке перечисляет всех пользователей без полномочий root, которые запускают процессы, содержащие
apache
(или чье имя содержитapache
)источник
ps aux | grep apache
его во время работы.ПРИМЕЧАНИЕ. Это тот же ответ, который я дал на Stackoverflow .
источник
Или вы можете проверить конфигурационный файл apache и найти владельца и группу.
источник
Как предложил Нойо здесь :
А потом:
источник
Альтернативный подход, по крайней мере для дистрибутивов на основе Debian / Ubuntu, заключается в использовании того же метода, который Apache использует для установки своих пользователей и групп: source
/etc/apache2/envvars
!Если вы хотите получить фантазию, вы можете подавить ошибки, если файл не найден, и указать значение по умолчанию:
источник
Я обнаружил, что большинство предлагаемых здесь решений зависят от системы или конфигурации (в частности, большинство решений вообще не работают на MacOS), а некоторые полагаются на то, что пользователь знает, где находятся файлы конфигурации Apache. ,
Поэтому я немного обманываю и позволяю Apache саму сказать мне, что к чему.
Простая команда
apachectl -S
расскажет вам, что вам нужно знать о работающем экземпляре Apache, и его результаты могут быть проанализированы довольно легко. Вот мое решение, которое я использую в верхней части несколькихbash
сценариев, чтобы определить множество вещей, которые могут мне понадобиться в любой момент времени ...Эти значения могут быть использованы как таковые:
источник
Я нашел эту команду в документации CakePHP .
Теперь
HTTPDUSER
содержит имя пользователя, который запускает сервер,echo $HTTPDUSER
в моем случае выводит -www-data
using rlerdorf / php7dev .источник
Используйте lsof и передайте порт apache для прослушивания в качестве аргумента. См. Столбец USER для пользователя appache работает как.
источник