一:安装软件
#yum install vsftpd pam* db4*-y
先建一个帐号专门用来ftp操作的一个宿主用户
#useradd ftptest -s /sbin/nologin
#cd /etc/vsftpd/
#mkdir bak_conf
#cp vsftpd.conf bak_conf
#vi vsftpd.conf
我们来看下这个主配置文件
-------------------------------------------------------------------
#mkdir /etc/vsftpd/vconf
#cd /etc/vsftpd/vconf
#touch ftptest.txt
#sudo chmod 600 ftptest.txt
#sudo vi ftptest.txt //奇数行为账号,偶数行为密码
test
123456
------------------------
#sudo cd /etc/vsftpd/vconf
#db_load -T -t hash -f ftptest.txt ftptest
#chmod 600 login.db
#echo "auth required pam_userdb.so db=/etc/vsftpd/vconf/ftptest" > /etc/pam.d/vsftpd
#echo "account required pam_userdb.so db=/etc/vsftpd/vconf/ftptest" >> /etc/pam.d/vsftpd
#cd /etc/vsftpd/vconf
#touch test
#vi test
-------------------------------------------
#虚拟用户的个人目录路径,需要手工创建
local_root=/data/www/test
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
#本地用户的最大传输速度,单位是Byts/s,我设定的是10M
local_max_rate=1048576
----------------------------------------------
#touch /etc/vsftpd/chroot_list
#echo "test" > /etc/vsftpd/chroot_list //里面写用户账号
#/etc/init.d/vsftpd restart
防火墙配置如下:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 2222:2225 -j ACCEPT
(a)如果你需要删除一个虚拟ftp用户,先在login.txt文件中删除用户对应的用户名和密码,然后删除login.db,重新运行
db_load -T -t hash -f ftptest.txt ftptest.db
(b)如果只是要修改用户的密码,只需重新运行db_load就可以
如果要改变用户的其它配置,只需修改用户的配置文件
自己的脚本如下: