Apache: Запуск сайтов от разных пользователей
- Главная
- >
- Статьи и переводы
- >
- Apache: Запуск сайтов от разных пользователей
- >
> В чем полезность этого?
- Безопасность. - Взлом одного из ваших сайтов никогда не приведет к взлому всей системы или других сайтов, стоящих рядом.
- Расширяемость. - Теперь мы можем отдать права на именно эту папку с сайтом своему программисту, не открывая других сайтов и тем более всей системы.
Поехали:
1. Итак, установим модуль apache, который позволит запускать процессы под разными пользователями, в зависимости от домена.
apt-get install apache2-mpm-itk
2. Apache будет запускать наш сайт от нового пользователя. Создадим этого пользователя.
useradd -d/opt/www/site.ru -s/bin/bash webmaster-site
passwd webmaster-site
3. Но скорее всего доступ к сайту необходим будет не только этому пользователю. Как минимум, если есть nginx - его пользователь тоже должен иметь доступ. Для этого создадим группу. И сразу добавим в нее нашего пользователя.
groupadd site-group
usermod -a -Gsite-group webmaster-site
4. Редактируем конфиг apache от нашего сайта.
Ориентировочно должен лежать тут: /etc/apache2/sites-available/site.ru .
Добавляем:
AssignUserId webmaster-site site-group
php_admin_value open_basedir "/opt/www/letswow.ru:/tmp"
# Можно не давать доступ сайту к /tmp и создать свою tmp для каждого сайта.
Но некоторые сайты откажутся работать в такой конфигурации
# php_admin_value upload_tmp_dir "/opt/www/letswow.ru/tmp"
# php_admin_value session.save_path "/opt/www/letswow.ru/tmp"
5. Проследите что у apache пользователь по-умолчанию и не совпадает не с одним из созданным под сайты. Лучше всего ничего не трогать и оставить стандартного пользователя www-data.
6. Меняем права на папку с сайтом. Подробнее о правах на файлы рассказано тут: http://sharm-blog.ru/ web -chmod-chown.html
chown -R www-data:site-group /opt/www/site.ru;
find /opt/www/site.ru -type f -exec chmod 664 {} ;
find /opt/www/site.ru -type d -exec chmod 2775 {} ;
7. Если используете nginx для записи, или есть другие сервисы/пользователи, которым нужен доступ к сайту на запись — самое время их добавить в группу!
usermod -a -Gsite-group nginx-user