Данная статья поможет вам установить 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
Все. Сервер настроен.