Step 1) Create the virtual users database.
1> 新建文本<存放帐号与密码>
vim /root/logins.txt
a ------> 用户
123 ------> 密码
b
456
c
789
2> 将txt文档转换成db文件
db_load -T -t hash -f /root/logins.txt /etc/vsftpd_login.db
3> 定于db文件的文件权限
chmod 600 /etc/vsftpd_login.db
Step 2) Create a PAM file which uses your new database.
find / -name pam_userdb.so 查询当前系统的pam模块位置
/lib64/security/pam_userdb.so
定义pam模块去找到数据库文件db 验证帐号密码
vim /etc/pam.d/ftp
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd_login
Step 3) Set up the location of the files for the virtual users.
新建用户
useradd -d /home/ftpsite virtual
上传一个文件,提供下载测试
cp /etc/hosts /home/ftpsite
chown virtual.virtual /home/ftpsite/hosts
Step 4) Create your vsftpd.conf config file
cp /usr/share/doc/vsftpd-2.2.2(版本号)/EXAMPLE/VIRTUAL_USERS/vsftp.conf /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES —开启虚拟用户
guest_username=virtual —定义虚拟用户的中间人
listen=YES
listen_port=21
pasv_min_port=30000 --被动模式的传输端口
pasv_max_port=30999
pam_service_name=/etc/pam.d/ftp --指定pam模块的认证目录
anon_world_readable_only=NO --开启匿名用户可读写
扩展
a vip 只提供下载 下载限速200KBps 家目录 /home/ftpsite/a
b vip 只提供上传 上传限速100KBps 家目录 /home/ftpsite/b
c vvip 不限速 家目录 /home/ftpsite
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/ew 定义用户的在扩展的目录中
mkdir /etc/vsftpd/ew
给a用户定义一个配置文件
vim /etc/vsftpd/ew/a
local_root=/home/ftpsite/a
anon_max_rate=200000(200kb)
给b用户定义一个配置文件
vim /etc/vsftpd/ew/b
local_root=/home/ftpsite/b
anon_max_rate=100000(100kb)
anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
给c用户定义一个配置文件
vim /etc/vsftpd/ew/c
local_root=/home/ftpsite/c
anon_world_readable_only=NO
anon_max_rate=0
anon_upload_enable=YES
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES