一:安装软件

#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

我们来看下这个主配置文件

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就可以

如果要改变用户的其它配置,只需修改用户的配置文件deployFTP.sh  

自己的脚本如下: