1、yum安装vsftpd程序:

[root@master ~]# yum install vsftpd -y

2、备份修改配置文件

[root@master ~]# cd /etc/vsftpd   
[root@master vsftpd]# cp vsftpd.conf{,.bak}    
[root@master vsftpd]# grep –v ‘#’ vsftpd.conf

 

anonymous_enable=NO  #是否允许anonymous登录FTP服务器,默认是允许的。    
local_enable=YES  #是否允许本地用户登录FTP服务器,默认是允许    
write_enable=YES  #是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许    
anon_umask=022  #设置虚拟用户的文件生成掩码为022,默认是077    
dirmessage_enable=YES  #激活目录信息,当远程用户更改目录时,将出现提示信息    
xferlog_enable=YES  #启用上传和下载日志功能    
connect_from_port_20=YES  #启用FTP数据端口的连接请求    
xferlog_file=/var/log/vsftpd.log  #设置日志文件的文件名和存储路径,这是默认的    
xferlog_std_format=YES  #是否使用标准的ftpd xferlog日志文件格式    
listen=YES  #使vsftpd 处于独立启动模式    
user_config_dir=/etc/vsftpd/vuser_dir  #使用虚拟用户配置文件的目录    
pam_service_name=/etc/pam.d/vsftpd  #设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.    
userlist_enable=NO  #用户列表中的用户是否允许登录FTP服务器,默认是不允许    
chroot_list_enable=YES  #如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项    
tcp_wrappers=YES  #使用tcp_wrqppers作为主机访问控制方式    
guest_enable=YES  #是否启用来宾用户(也就是启用虚拟用户)    
guest_username=root  #如果启用了虚拟用户后上传文件修改文件的用户名    
chown_uploads=YES  #是否启用上传文件后修改为指定的属主    
chown_username=root  #是否启用上传文件后修改为指定的属主用户

3、在/etc/vsftpd/下创建两个目录

vuser_db  #后续存放虚拟用户的配置文件  
vuser_dir  #存放虚拟用户的认证文件    

[root@master vsftpd]# mkdir vuser_db vuser_dir    
[root@master vsftpd]# cd vuser_db/    
[root@master vuser_db]#vim login_user

 
#以下是login_vuser虚拟用户的帐号密码格式,奇数行为用户名,双数行为密码    
user001    
password     
#生成数据库文件    
#选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。    
如果指定了选项-T,那么一定要追跟子选项-t    
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。    
-f:参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码    

[root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/user.db

4、更改pam认证模块

[root@master vuser_db]# cd /etc/pam.d/   
[root@master vuser_db]# vim vsftpd

   
#最后面的vuser就是user.db,但是这里的后缀不是需要写的    

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/user    
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/user

5、为虚拟用户创建对应的文件

[root@master vuser_dir]# vim user001   
anon_world_readable_only=NO    
write_enable=YES    
anon_upload_enable=YES    
anon_mkdir_write_enable=YES    
anon_other_write_enable=YES    
local_root=/data/www/test  #指定虚拟用户有权限登录到哪个目录    
chown_upload_mode=0777  #虚拟用户上传文件的权限设置

到这里基本上算是配置完成了,启动vsftpd服务了:

root@master vsftpd]# service vsftpd start