LINUX.ORG.RU

Запуск Apache не из-под root

 , ,


0

2

Здравствуйте, уважаемые. Есть Debian, на котором апач почему-то запускается из-под рута. Хотя в /etc/apache2/apache2.conf :

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
В /etc/apache2/envvars:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
А получается:
root@7th_odroid:~# ps aux | grep apach
root     23854  0.0  1.8 134644 18768 ?        Ss   09:16   0:02 /usr/sbin/apache2 -k start
root     26219  0.0  0.6 134676  6348 ?        S    10:24   0:00 /usr/sbin/apache2 -k start
root     26220  0.0  0.6 134676  6348 ?        S    10:24   0:00 /usr/sbin/apache2 -k start
root     26221  0.0  0.6 134676  6348 ?        S    10:24   0:00 /usr/sbin/apache2 -k start
root     26222  0.0  0.6 134676  6348 ?        S    10:24   0:00 /usr/sbin/apache2 -k start
root     26229  0.0  0.6 134676  6348 ?        S    10:25   0:00 /usr/sbin/apache2 -k start
root     26231  0.0  0.6 134676  6348 ?        S    10:25   0:00 /usr/sbin/apache2 -k start
root     26422  0.0  0.6 134676  6348 ?        S    10:45   0:00 /usr/sbin/apache2 -k start
root     26429  0.0  0.6 134676  6348 ?        S    10:45   0:00 /usr/sbin/apache2 -k start
root     26430  0.0  0.6 134676  6348 ?        S    10:45   0:00 /usr/sbin/apache2 -k start
root     27069  0.0  0.6 134676  6348 ?        S    11:36   0:00 /usr/sbin/apache2 -k start
owncloud 27332 11.0  1.4 140256 14864 ?        S    12:10   0:00 /usr/sbin/apache2 -k start
Почему апач работает от рута и как заставить запускаться от www-data? (запускается при старте системы)

По-идее, должен быть один процесс от рута, остальные от www-data.

Проверь, есть ли в apache2.conf сточки

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

Убедись, что стартовый скрипт апача (/etc/init.d/apache2) на самом деле читает /etc/apache2/envvars.

Убедись, что пользователь www-data сущесвует в системе.

ddos3
()
Ответ на: комментарий от generator

Пользователь есть - светится в /etc/passwd:

www-data:x:33:33:www-data:/var/www:/bin/sh

Апач в логах ничего интересного не пишет. Перезагружается красиво, без лишних слов, так сказать)

seventhsite
() автор топика
Ответ на: комментарий от ddos3

В конфиге есть такие строчки - я написал об этом в вопросе. В стратовом скрипте есть таке строчки:

if [ -z "$APACHE_ENVVARS" ] ; then
        APACHE_ENVVARS=$APACHE_CONFDIR/envvars
fi
export APACHE_CONFDIR APACHE_ENVVARS

Пользователь есть.

seventhsite
() автор топика
Ответ на: комментарий от vel

Ммм... Как узнать? Я ставил этот модуль для того, чтобы owncloud у меня работал от своего пользователя. Как видите - один процесс от него и работает. Получается из-за этого модуля апач запускается из-под рута и мне надо в конфиге каждого сайта прописывать нужного пользователя?

seventhsite
() автор топика
Ответ на: комментарий от seventhsite

Вычитал, создал php-файлик c содержимым:

<?php echo exec('id'); ?>

Так вот при отрытии его в браузере вижу:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Хотя в системе, получается, нет процессов, запущенных от этого пользователя:

root@7th_odroid:~# ps aux | grep www-data
root@7th_odroid:~#
Похоже, я не до конца понимаю как он работает... Или всё-таки так не должно быть?

seventhsite
() автор топика
Ответ на: комментарий от seventhsite

Да. В конфиге виртуалхоста должно быть такое:

AssignUserId www-data www-data
вместо www-data — имя того пользователя, которому принадлежит директория с owncloud'ом.

xfilx ★★
()
Ответ на: комментарий от xfilx

Для owncloud я как раз делал такое - как можно увидеть в моём первом сообщении, один процесс как раз работает от этого пользователя. А вот нормально ли, что остальные процессы от рута? Хотя, на самом деле, открывают файлы из-под www-data...

seventhsite
() автор топика
Ответ на: комментарий от seventhsite

itk это не модуль.

в itk можно указать дефолтный uid/gid.

Главная особенность этого mpm в том, что для vhost можно указать uid/gid.

vel ★★★★★
()
Ответ на: комментарий от seventhsite

А вот нормально ли, что остальные процессы от рута?

Нормально. Иначе как оно будет id менять?

xtraeft ★★☆☆
()
Ответ на: комментарий от xfilx

Благодарю за ответы! Тогда другой вопрос из той же оперы - как запретить доступ к системным файлам? Сейчас я делаю скрипт вида

<?php
 readfile('/etc/passwd');
?>
и он успешно исполняется - вижу в браузере всё содержимое. Как не дать зловредному скрипту выйти за пределы своей директории?

seventhsite
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.