VDSPlanet.ru Making the difference in VDS Hosting
Установка vsftpd с авторизацией по текстовому файлу

Материал из Wiki.VDSPlanet.ru.

Перейти к: навигация, поиск

Данная статья поможет вам установить ftp-сервер [vsftpd.beasts.org]
Обновим списки пакетов в репозиториях
apt-get update
Ставим сервер и утилиты работы с berkeley db
apt-get install vsftpd db3-utils db3
и останавливаем его
/etc/init.d/vsftpd stop
Переходим в папку с примером и смотрим ее содержимое.
cd /usr/share/doc/vsftpd-*/EXAMPLE/VIRTUAL_USERS
ls

Нам предстанет такая картина logins.txt README README.dir vsftpd.conf vsftpd.pam vsftpd.pam.dir
Можно почитать readme
cat README

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


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

mkdir /etc/vsftpd/users

Настраиваем сервер
nano /etc/vsftpd.conf

anonymous_enable=NO
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=ftpuser
user_config_dir=/etc/vsftpd/users/
virtual_use_local_privs=YES
chmod_enable=YES
chown_uploads=YES
chown_username=ftpuser
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
ftpd_banner=Come silently, ask a little, leave quickly.

Создадим пользователя с почти нулевыми правами.

useradd -d /home/ftp ftpuser

Добавлять пользователей удобно скриптом
touch /etc/vsftpd/useradd.sh

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

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


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


db3_load -T -t hash -f logins.txt /etc/vsftpd/login.db

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


Последняя команда преобразует текстовый файл logins.txt, в который в
формате обычного текста внесем логины и пароли в таком вот формате:
login1
password1
login2
password2


в базу данных Berkeley

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

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


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

mkdir /home/ftp
chown -R ftpuser:nogroup /home/ftp


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

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


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

mkdir /home/ftp/u2
chown ftpuser:nogroup /home/ftp/u2


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

  1. разрешим аплоад создание и удаление каталогов в своем каталоге. запретим удаление файлов


local_root=/home/ftp/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

Все. Сервер настроен.
При появлении вопросов и глюков пишите. lan_ {at} bk.ru