unix 2014-02-16 10-24-37
Приводим файл /etc/vsftpd/vsftpd.conf следующему содержанию
# наш сервер не будет анонимным
anonymous_enable=NO
local_enable=YES
write_enable=YES
#папка по умолчанию
local_root=/data
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
# маска создание и чтение файлов - очень важные параметры я убил 2 дня
# на поиски решения (при #создании каталогов - пользователи не могли в
# них попасть т.к. не было прав)
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=Welcome to Trancecity.ru
9.Создадим пользователя с минимальными правами.
#useradd -d /data ftpuser
10.Создадим небольшой скрипт для внесения пользователей
#touch /etc/vsftpd/useradd.sh
со следующим содержанием:
rm -f /etc/vsftpd/login.db
db42_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db
service vsftpd restart
# chmod +x /etc/vsftpd/useradd.sh
db42_load -T -t hash -f logins.txt /etc/vsftpd/login.db
Последняя команда преобразует текстовый файл logins.txt, в который в
формате обычного текста внесем логины и пароли в таком вот формате:
login1
passwd1
login2
passwd2
в базу данных Berkeley, которая должна быть установлена (в большинстве
случаев по умолчанию)
11. Итак теперь почти все готово для запуска фтп, остается назначить
пользователям нужные права, создадим 2 файла
# touch /etc/vsftpd/users/login1
# touch /etc/vsftpd/users/login2
итак пользователю login1 мы дадим полные права на каталог /data
содержание файла
local_root=/data
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=NO
пользователю login2 мы создадим подкаталог /data/login2
# mkdir /data/login1
# chown ftpuser:ftp /data/login2
и файл с настройками будет выглядить след образом
local_root=/data/login2
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
параметры будут в таком виде пользователь сможет ходить по указанной ему
папке но ничего кроме как скачать делать не сможет
12.
#service vsftpd restart