Как я настраивал Vsftpd вход не анонимный. Напишу немного теории(которую освоил пока разбирался что да как), не анонимный вход можно организовать 2 способами(может есть и больше):
1-Вход по User_list тоесть каждый пользователь FTP зарегистрирован в системе /etc/passwd а обычный файл user_list.txt определяет кому из них можно входить на FTP(подробнее написанно выше у Voler)
2-Вход по Virtual User, тоесть в системе регистрируеться 1 пользователь FTP с правами которого заходят на сервак пользователи,логин и пароль пользователей зависит от специальной файла базы данных который делаеться из обычного текстового файла!
Ниже напишу все действия как я делал,сразу скажу делал на основе вот этой статьи-
OpenNET
ОС: OpenSuse 10.3
.Создадеться пользователь ftpuser с минимальными правами(впринципи в OpenSuse создаеться пользователь ftp при утсановке из репозитария)
1.1Все действия выполняються под рутом
#useradd -d /data ftpuser
1.2 Проверим что он создался
#grep ftp /etc/passwd
---ftpuser:x:1001:100::/data:/bin/bash---
1.3 Cоздаем каталог для индивидуальных настроек пользователей #mkdir /etc/vsftpd/users(изначально в OpenSuse нету папки /etc/vsftpd так что ее тоже надо создать)
1.4 Дальше по статье создают скрипт для того что автоматического создания листа пользователей #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 # создаеться база пользователей из листа login.txt
service vsftpd restart # рестарт ftp
(если создания скрипта идет из kwrite то каждая строка должна начинаться с начала)
Файл login.txt выглядит таким образом
------
login1
123
login2
123
-----
Можно не писать скрипт а просто выполнять комманду db42_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd_login.db
На выходе получим таблицу с витруальнми пользователя.
1.5 #chmod 600 /etc/vsftpd_login.db
1.6 # cp /usr/share/doc/packages/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp (без этого у меня отказывался работать,вычитал в мануале /usr/share/doc/packages/vsftpd/EXAMPLE/VIRTUAL_USERS/Readme)
1.7 # touch /etc/vsftpd/users/login1
# touch /etc/vsftpd/users/login2 (создаем конфигурационные файлы для каждого пользователя,необязательно)
# mkdir /data/login1
# chown ftpuser:ftp /data/login2 (при создание папок виртуальным пользователям не забываем менять их владельца)
login1
--------
local_root=/data
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chroot_local_user=NO
---------
login2
---------
local_root=/data/login2
anon_upload_enable=YES # разрешим аплоад
anon_mkdir_write_enable=YES # разрешим создание и удаление каталогов в своем каталоге
anon_other_write_enable=NO # запретим удаление файлов
chroot_local_user=NO
--------
1.8 /etc/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=ftp
# маска создание и чтение файлов - очень важные параметры я убил 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
#tcp_wrappers=YES
dirmessage_enable=YES
ftpd_banner=Welcome to Trancecity.ru
Ну вот вроде и все.
P.S это заметка не притендует на полное руководство,это только примерно что надо сделать чтобы заработала FTP для дальнейшего надо уже иметь точное задание чего охота получить от FTP.