一、vsftpd虚拟用户配置

1、安装vsftpd (rpm包或者用yum安装)

yum install vsftpd

2、在/etc/vsftpd/下创建vuser.txt文件,在里面填写用户名和账号,第一行账号,第二行密码,依次类推。

3、建立访问者的口令库文件,然后修改其权限

db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

(如果系统提示找不到db_load命令,则需先安装

yum –y install db4

(pam*是否需安装没经过测试)

4、进入/etc/pam.d/中创建vsftpd,在其中添加如下信息并且将其余的信息注释

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser   #32位系统是/lib/目录
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser  #32位系统是/lib/目录

5、创建虚拟用户映射的系统账号

#useradd –d /home/vsftpd –s /sbin/nologin vuserftp #创建系统账号,但使之不能登录系统
#chmod 700 /home/vsftpd

6、先备份/etc/vsftpd/vsftpd.conf文件,然后清空内容并添加如下信息:

常用配置文件

listen=YES

listen_port=58745

anonymous_enable=NO

local_enable=YES

local_umask=022

guest_enable=YES

guest_username=vuserftp

pam_service_name=vsftpd

user_config_dir=/etc/vsftpd/vuser_conf

virtual_use_local_privs=YES

write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_local_user=YES

userlist_enable=YES

tcp_wrappers=YES

参考配置文件

listen=yes

listen_port=21

#port_enable=yes

#connect_from_port_20=yes


pasv_enable=yes      #使用被动传输

pasv_min_port=52000  #指定被动模式端口范围

pasv_max_port=52020


local_enable=YES      #使系统账号能登录

write_enable=YES      #可写

#anon_root=/var/ftp/vuser

#local_root=/

#local_umask=022

userlist_enable=yes         

userlist_deny=yes

userlist_file=/etc/vsftpd/user_list

max_clients=20      #连接ftp的最大客户端

max_per_ip=20       #最多20个IP能连接ftp

 

guest_enable=yes    #启用虚拟用户

guest_username=vuser

#虚拟用户映射到的系统账号

pam_service_name=vsftpd.vuser 

#PAM认证文件

user_config_dir=/etc/vsftpd/vuser_conf      #虚拟用户配置文件存放目录

7、创建虚拟用户配置文件存放目录

mkdir /etc/vsftpd/vuser_conf

8、进入/etc/vsftpd/vuser_conf目录,创建与虚拟用户名相同名称的文件(虚拟用户名即vuser.txt中的用户名名,文件名必须和虚拟用户用户名一致),比如创建demo

9、在demo中填写如下信息(红色为对匿名用户的设置)

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/usr/local/amp/apache/htdocs/demo  #此路径根据虚拟用户要访问的目录对应修改

 总结:客户端根据创建的虚拟用户连接服务器,虚拟用户映射到系统账号vuser登录ftp,然后FTP根据配置文件vsftpd.conf的设置(user_config_dir=/etc/vsftpd/vuser_conf)找到虚拟用户配置文件的存放目录,然后根据虚拟用户的配置文件指定的目录路径(local_root=/usr/local/amp/apache/htdocs/demo)访问到指定的目录。(注:虚拟用户访问到的文件根目录属主需要改成vuserftp,即真正存在的用户)