Данная статья поможет вам установить ftp-сервер [vsftpd.beasts.org]

Обновим списки пакетов

apt-get update

Ставим сервер и утилиты работы с berkeley db

apt-get install vsftpd db4.6-utils

и останавливаем его

/etc/init.d/vsftpd stop

Переходим в папку с примером и смотрим ее содержимое.

cd /usr/share/doc/vsftp*/EXAMPLE/VIRTUAL_USERS

Копируем нужные файлы

mkdir /etc/vsftpd
cp logins.txt /etc/vsftpd/
cp vsftpd.conf /etc/vsftpd/
cp vsftpd.pam /etc/pam.d/vsftpd

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

mkdir /etc/vsftpd/users

Настраиваем сервер

nano /etc/vsftpd.conf

anonymous_enable=NO
force_dot_files=YES
local_enable=YES
write_enable=YES
local_root=/home/ftp
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=web
user_config_dir=/etc/vsftpd/users/
virtual_use_local_privs=YES
chmod_enable=YES
chown_uploads=YES
chown_username=web
local_umask=0022
anon_umask=0007
file_open_mode=0777
listen=YES
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
tcp_wrappers=YES
dirmessage_enable=YES
pam_service_name=vsftpd
ftpd_banner=Come silently, ask a little, leave quickly.

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

groupadd web
useradd --gid web -d /home/web web

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

nano /etc/vsftpd/useradd.sh

со следующим содержанием:

rm -f /etc/vsftpd/login.db
db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db
/etc/init.d/vsftpd restart

разрешаем его запуск chmod +x /etc/vsftpd/useradd.sh

ВАЖНО!
Обязательно проверяйте совпадение путей в файле /etc/pam.d/vsftpd . В этом файле пути указываются без .db

Этот файл должен выглядеть так:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

Внесём логины и пароли в /etc/vsftpd/logins.txt в формате

login1
password1
login2
password2

остается назначить пользователям нужные права, создадим 2 файла

touch /etc/vsftpd/users/login1
touch /etc/vsftpd/users/login2

итак пользователю login1 мы дадим полные права на каталог /home/web

содержание файла /etc/vsftpd/users/login1

local_root=/home/web
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=NO

пользователю login2 мы создадим подкаталог /home/ftp/u2

mkdir /home/web/u2
chown web:web /home/web/u2

разрешим аплоад создание и удаление каталогов в своем каталоге. запретим удаление файлов и файл /etc/vsftpd/users/login2 с настройками будет выглядить след образом

local_root=/home/web/u2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
chroot_local_user=NO

Замечание: если поставить

anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

то кроме как скачать пользователь ничего делать не сможет

запускаем волшебный скрипт: /etc/vsftpd/useradd.sh

Все. Сервер настроен.