1、安装所需软件
 yum install vsftpd db4-utils

2、修改主配置文件/etc/vsftpd/vsftpd.conf,进行下述操作:

listen=YES
 是否独立运行方式监听服务
anonymous_enable=NO
 #禁止匿名用户访问
local_enable=YES
 #允许本地用户访问
write_enable=NO
 #默认不允许写入,在用户的配置文件中控制
 
local_umask=022
 #本地用户创建文件掩码
dirmessage_enable=YES
 #用户切换目录提示信息
xferlog_enable=YES
 #启用xferlog日志
xferlog_std_format=YES

connect_from_port_20=YES
 #允许服务器主动模式

chroot_local_user=YES
 #不允许用户切换目录
 
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

user_config_dir=/etc/vsftpd/vsftpd_user_conf
 #指定用户配置目录位置
 
pam_service_name=vsftpd
 #PAM认证文件位置
 
userlist_enable=YES
 #启用user_list文件列表
 
tcp_wrappers=YES
 #启用tcp_wrappers主机访问

##以下配置是使用虚拟用户模式时需要添加的
 
guest_enable=YES
 #启用用户映射功能
 
guest_username=virtualftp 
 #将映射用户指定为virtualftp
 
##以下设置根据需求自定

max_per_ip=5                                 
 #相同IP最多允许5个并发连接

max_clients=50                               
 #同时允许50个客户端同时连接

 


3、设置虚拟用户的用户名和密码
 vi /etc/vsftpd/vuser.txt
  test1  #用户名
  123456  #密码
  test2
  56789
4、将账号文件转化成数据库文件
 db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
 
5、更改用户账号密码的文件权限
 chown 600 /etc/vsftpd/vuser.txt

   
chown 600 /etc/vsftpd/vuser.db 
6、添加虚拟用户对应的系统账户
 useradd -d /var/virtualftp -s /sbin/nologin virtualftp  
 
7、将PAM认证样本文件复制到/etc/pam.d/vsftpd.vu 并修改
 cp /usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
  vi /etc/pam.d/vsftpd

改成
      auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser          
      account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
  注:如果是64位系统的话应该是/lib64/
      vsftpd默认的 /etc/pam.d/vsftpd不适合虚拟目录 
8、设置需要限制的用户的独立权限
 cd /etc/vsftpd/vsftpd_user_conf
 vi test1
  anon_umask=022          #设置用户创建文件的权限掩码
  write_enable=YES                                  #允许写入
  anon_mkdir_write_enable=YES                       #允许创建文件夹
  anon_upload_enable=YES                           #允许上传
  anon_other_write_enable=YES                        #允许其它写入权限
  anon_max_rate=102400         #设定最大下载带宽
  local_root=/var/virtualftp/test1                   #指定FTP根目录
  

9、创建用户目录
 mkdir /var/virtualftp/test1
 chown virtualftp /var/virtualftp/test1     更改/var/ftp/soft目录属主
10、启动服务
 service vsftpd start        启动vsftpd服务

 一个vsftpd.conf的样例

listen=YES
connect_from_port_20=YES
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
pam_service_name=vsftpd
tcp_wrappers=YES


anonymous_enable=NO

local_enable=YES
write_enable=NO
local_umask=022
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list


chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

guest_enable=YES
guest_username=virtualftp
user_config_dir=/etc/vsftpd/vsftpd_user_conf

max_clients=5
max_per_ip=5


 

可能遇到的问题:

1、配置文件中每一行都不要有空格,否则用客户端连接会报错

例如anon_mkdir_write_enable=YES 多加了一个空格,就会有如下提示

      500 OOPS: bad bool value in config file for: anon_mkdir_write_enable

参考文章: http://www.feiniao.name/post/509.html

参考文章: http://zhouxuguang.blog.51cto.com/1053090/514575