本文主要介绍在64位操作系统下配置vsftp的虚拟用户。


1.添加虚拟用户vuser
#useradd vuser -s /sbin/nologin
新建一个存储虚拟用户用户名密码的数据库,路径可自设,这里用/etc/vsftpd/vuser
      #cd /etc/vsftpd/
      #vim vuser(在里面写入你需要的用户名和密码,一行用户名一行密码,格式如下)
用户名
密码
用户名
密码
....
安装db4_utils
#yum -y install db4*
把新建的文本文件vuser转换为db文件
      #cd /etc/vsftpd
      #db_load -T -t hash -f vuser vuser.db

2.配置vsftpd.conf文件
加入如下几行:
  guest_enable=yes

guest_username=vuser

pam_service_name=vvsftpd(新的pam认证文件,原来的是vsftpd)

local_enable=yes(默认已存在)

user_config_dir=/etc/vsftpd/userconfig (目录下存放相关的用户的配置文件,文件名对应vuser里的用户名)


3.添加vvsftpd文件
进入目录/etc/pam.d,新建空文件vvsftpd,内容为:
auth    required        /lib64/security/pam_userdb.so     db=/etc/vsftpd/vuser 

account required        /lib64/security/pam_userdb.so     db=/etc/vsftpd/vuser

 

注意:32位的系统中pam_userdb.so的目录应为/lib/security/pam_userdb.so

4.配置范例
 #cd /etc/vsftpd/userconfig,这里只需要在该目录中新建两个配置文件"vftp1","vftp2":

账号vftp1用作上传专用账号,权限为只能上传不能下载不能删除不能新建文件夹,根目录为/var/ftp/share.由于虚拟用户使用的是匿名用户的权限选项,所以虚拟用户配置起来是非常灵活的.这里还要注意一下选项"anon_world_readable_only=no”这个选项的大致意思是开放匿名用户(虚拟用)的浏览权限,如果不写这个的话会报一个错误.

vftp1的配置如下:

local_root=/var/ftp/share (限制根目录)

download_enable=no
anon_upload_enable=yes
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no 

帐户"vftp2"用作下载账号,只能下载不能上传不能删除不能新建文件夹,根目录为/var/ftp/share

local_root=/var/ftp/share 

download_enable=yes
anon_upload_enable=no
anon_other_write_enable=no
anon_mkdir_write_enable=yes
anon_world_readable_only=no

注:每行后面不能有空格,否则报错

参数说明:

anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件

  anon_upload_enable=YES 表示用户可以上传文件
  anon_mkdir_write_enable=YES 表示用户具有建立和删除目录的权限
  anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限

下面来建立文件夹/var/ftp/share,这个文件夹的所有者应该为"vuser",因为虚拟用户vftp1,vftp2映射的本地用户是vuser,如果vuser对该文件夹没有权限,那么不论配置文件里的权限开多大也无济于事

#chown -R vuser:vuser /var/ftp/share

这样就OK了!

5.上传文件的权限

修改vsftpd.conf文件,加入anon_umask=022