19 ноября 2013 г.

Как в Ubuntu запустить виртуальные хосты Apache под разными пользователями

Зачем нужно запускать виртуальные хосты под разными пользователями?
По-умолчанию Apache работает “от имени и по поручению” юзера www-data. Это значит что для веб-сервера будут доступны только те ресурсы (файли и каталоги), которые доступны для юзера www-data, соответственно и изменить он сможет только их. Как правило, на одном веб-сервере может располагаться сразу несколько виртуальных хостов (несколько сайтов), по-умолчанию все они будут доступны для юзера www-data и в случае взлома или поражения одного из ресурсов, остальные также могут быть поражены. Поэтому с целью обеспечения дополнительной безопастности существет возможность запуска виртуальных хостов от имени разных юзеров.
Как запустить виртуальные хосты от имени разных юзеров в Apache2?
Организовать работу виртуальных хостов под разными пользователями достаточно просто.
Для начала установим дополнительный модуль для апача apache2-mpm-itk. Так как этот модуль скомпилирован внутри apache2, во время установки появляется сообщение о том, чтотекущая версия apache и некоторые установленные модули могут быть удалени. Для установки запускаем следующую команду:
$ sudo apt-get install apache2-mpm-itk
В последующем перезапуске веб-сервера необходимости нет.
Теперь создадим новую группу
$ sudo addgroup GROUP_NAME
и юзера, под которыми будет работать один из наших виртуальных хостов
$ sudo useradd -g GROUP_NAME USER_NAME

$ sudo passwd USER_NAME
Далее открываем файл конфигурации виртуального хоста и добавляем туда диррективы:
<IfModule mpm_itk_module>

     AssignUserId USER_NAME GROUP_NAME

</IfModule>
Перед перезагрузкой apache установим соответствующие права на каталоги и файлы для нашего виртуального хоста
$ sudo chown USER_NAME:GROUP_NAME /var/www/some-virtualhost/ -R
Осталось только перезагрузить веб-сервер:
$ sudo service apache2 restart

Источник

Комментариев нет:

Отправить комментарий