Ставим пакеты:
apt-get install vsftpd libpam-mysql
Заходим в mysql с рутовым паролем
mysql -u root -p
Cоздаем необходимы таблицы и пользователей. (поменяйте пароль не свой)
CREATE DATABASE vsftpd; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'pass'; FLUSH PRIVILEGES; USE vsftpd; CREATE TABLE `accounts` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 30 ) NOT NULL , `pass` VARCHAR( 50 ) NOT NULL , UNIQUE ( `username` ) ) ENGINE = MYISAM ; quit;
Добавляем пользователя
groupadd web useradd --home /home/web --gid web -m --shell /bin/false web
Переименовываем старый конфиг и создаем новый
mv /etc/vsftpd.conf /etc/vsftpd.conf_orig touch /etc/vsftpd.conf nano /etc/vsftpd.conf
Пишем:
force_dot_files=YES listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=web local_root=/home/web/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf data_connection_timeout=600 idle_session_timeout=600 ftpd_banner=Come silently, ask a little, leave quickly.
Создаем папки для доп. конфигурации, настраиваем идентификацию.
mkdir /etc/vsftpd_user_conf cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig cat /dev/null > /etc/pam.d/vsftpd nano /etc/pam.d/vsftpd
Пишем (не забываем про пароль)
auth required pam_mysql.so user=vsftpd passwd=__pass__ host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=__pass__ host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
перезапускаем
/etc/init.d/vsftpd restart
Добавление пользлвателей: 1) добавить запись в БД.
mysql -u root -p USE vsftpd; INSERT INTO accounts (username, pass) VALUES('site', PASSWORD('111111')); quit;
2.Создать каталог и проставить нужные права
mkdir /home/web/site chown web:web /home/web/site