Шпаргалка по vsftpd (или как дать заказчикам доступ к своим сайтам)
Постановка задачи
Имеется сервер с LAMP на котором размещены сайты заказчиков. (хостинг короче)
Задача – дать каждому заказчику доступ к своему сайту по ftp.
Будем использовать vsftpd + виртуальных пользователей
Решение
/etc/vsftpd/vsftpd.conf:
anonymous_enable=NO local_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES chroot_local_user=YES #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd/chroot_list chmod_enable=YES chown_uploads=YES chown_username=apache guest_enable=YES guest_username=apache local_umask=0000 #anon_umask=777 file_open_mode=0755 listen=YES #listen_port=10021 pasv_min_port=30000 pasv_max_port=30999 xferlog_std_format=YES xferlog_file=/var/log/vsftpd.log pam_service_name=vsftpd user_config_dir=/etc/vsftpd/users/ virtual_use_local_privs=YES pasv_promiscuous=YES
Список виртуальных пользователей будет храниться в файле /etc/vsftpd/logins
, в формате:
<login1> <password1> <login2> <password2>
vsftpd пароли берет из базы /etc/vsftpd/logins.db
, которую нужно создать из файла logins
командой:
db_load -T -t hash -f logins logins.db
в папке /etc/vsftpd/users
создаем для каждого пользователя файл, в котором указываем его домашний каталог в формате:
local_root=<путь к сайту заказчика>
например:
local_root=/var/www/potencial.pro
файл /etc/vsftpd/user_list
содержит логины, которые мы заблокировали