Инструменты пользователя

Инструменты сайта


ubuntu:apache_multi_users

apache2 - Запуск виртуальных хостов от разных учетных записей

Ситуация: У вас сервер. Вы предоставляете хостинг для своих друзей. У них отдельные SSH/FTP аккаунты. Необходимо разграничить доступ на уровне apache. По сути, нужно, что бы Apache запускался для каждого пользователя под своим логином.

Есть решения основанные на CGI, но я предпочитаю использовать модуль apache2-mpm-itk.

<note important>Установка apache2-mpm-itk может удалить apache2 и apache2-mpm-prefork</note>

Устанавливаем:

$ sudo apt-get install apache2-mpm-itk

Далее, прописываем к каждому виртуальному хосту следующее:

<IfModule mpm_itk_module>
AssignUserId USER GROUP
</IfModule>

Если для виртуального хоста не будет указана эта директива, то сайт будет работает от стандартного пользователя, который установлен к файле настроек apache2 (Обычно www-data или apache2 или httpd).

Далее, необходимо установить права владения файлов у виртуальных хостов:

$sudo chown MYUSER:MYGROUP /var/www/my-virtualhost/ -R

Активировать этот модуль через a2enmod НЕ нужно.

Перезапускаем Apache2:

$ sudo /etc/init.d/apache2 reload

Пример создания директории под сайт и пользователя

Создаем новую группу:

groupadd friend

Создаем пользователя vasya в группе friend:

useradd -s /bin/false -d /home/vasya -m -g friend vasya

Для него автоматически создастся домашняя директория /home/vasya

И для его виртуального хоста добавляем строчки: <IfModule mpm_itk_module> AssignUserId vasya friend </IfModule>

Ссылки

ubuntu/apache_multi_users.txt · Последние изменения: 2017/03/23 21:59 (внешнее изменение)