Создаем минихостинг на apache2-mpm-itk и pure-ftpd

Для начала ставим приложения

apt-get install apache2-mpm-itk pure-ftpd

Затем сразу изолируем будущих пользователей в своих папках. Для этого pure-ftpd запускаем с ключем -A.


Для этого выполняем

echo yes > /etc/pure-ftpd/conf/ChrootEveryone

и перезапускаем сервер

/etc/init.d/pure-ftpd restart

Теперь создаем нужную структуру папок.
К примеру

cd /
mkdir -m 755 sites

Затем делаем пользователя

addgroup user1

(Добавляем группу для первого юзера)

useradd user1 -d /sites/user1 -g user1 -s /usr/sbin/nologin

(Добавляем первого юзера, устанавливаем ему домашнюю директорию, добавляем во вновь созданную группу. В конце запрещаем использовать оболочку (консоль). В случае, если стоит pure-ftpd то нужно провести еще следующую настройку.)

passwd user1

(Устанавливаем пароль)

chmod 754 /sites/user1

(Правим права доступа к домашней директории)

mkdir -p -m 754 /sites/user1/public_html/

(создаем веб-директорию, устанавливаем права доступа)

mkdir -p -m 777 /sites/user1/tmp

(создаем директорию для временных файлов, устанавливаем права доступа)

chown -R user1:user1 /sites/user1/

(Рекурсивно меняем владельца домашней директории и всех вложенных)

Теперь подключим домен в апаче

<VirtualHost *:80>
ServerName user1.ru
DocumentRoot /sites/user1/public_html/
ErrorLog /sites/user1/error_log
CustomLog /sites/site1/access_log combined
# Важный момент, указываем, что апач будет работать от пользователя www-data и нашей группы site1
AssignUserId www-data site1

# open_basedirдля домашней директории пользователя, можно добавить несколько директорий при необходимости, директории разделяются двоеточием «:»
php_admin_value open_basedir "/sites/user1/"
# Включаем сейф-мод, я сделал это в каждом конфиге сайта для удобства отключения при необходимости.
php_admin_value safe_mode "on"
# Определяем нашу временную директорию как основную, вместо /tmp и устанавливаем её директорией для хранения сессий.
php_admin_value upload_tmp_dir "/sites/user1/tmp"
php_admin_value session.save_path "/sites/user1/tmp"

</VirtualHost >

 

Вот по большому и все. Если вдруг надо изменить корневую директорию для пользователя, то используем следующую команду

usermod -d /sites/user2/ user1

Добавить комментарий