安装vsftpd

yum  install    vsftpd*   -y

查看vsftpd安装后的配置文件路径、启动Vsftpd服务及查看进程是否启动

rpm  -ql     vsftpd|more

systemctl  restart   vsftpd.service

ps   -ef |grep  vsftpd


1.安装Vsftpd虚拟用户需用到的软件及认证模块:


yum  install   pam  libdb-utils  libdb   --skip-broken  -y



2.创建虚拟用户临时文件/etc/vsftpd/ftpusers.txt,新建虚拟用户和密码,其中test001 test002为虚拟用户名,123456为密码,如果有多个用户,依次格式填写即可:


test001 

123456

test002

123456


3.生成Vsftpd虚拟用户数据库认证文件,设置权限700:

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

chmod  700   /etc/vsftpd/vsftpd_login.db


4.配置PAM认证文件,/etc/pam.d/vsftpd行首加入如下两行:

auth      required        pam_userdb.so  db=/etc/vsftpd/vsftpd_login

account  required        pam_userdb.so  db=/etc/vsftpd/vsftpd_login


5.所有Vsftpd虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登录,主要用于虚拟用户映射使用,创建命令如下:


useradd    -s   /sbin/nologin -d /home/wwwroot/   ftpuser


6.完整vsftpd.conf配置文件代码如下:


#global config Vsftpd 2017


anonymous_enable=YES


local_enable=YES


write_enable=YES


local_umask=022


dirmessage_enable=YES


xferlog_enable=YES


connect_from_port_20=YES


xferlog_std_format=YES


listen=NO


listen_ipv6=YES


userlist_enable=YES


tcp_wrappers=YES


#config virtual user FTP


pam_service_name=vsftpd


guest_enable=YES


guest_username=ftpuser


user_config_dir=/etc/vsftpd/vsftpd_user_conf


virtual_use_local_privs=YES


如上Vsftpd虚拟用户配置文件参数详解:


#config virtual user FTP


pam_service_name=vsftpd                                     虚拟用户启用pam认证;


guest_enable=YES                                                  启用虚拟用户;


guest_username=ftpuser                                        映射虚拟用户至系统用户ftpuser;


user_config_dir=/etc/vsftpd/vsftpd_user_conf       设置虚拟用户配置文件所在的目录;


virtual_use_local_privs=YES                                 虚拟用户使用与本地用户相同的权限。


7. 至此,所有虚拟用户共同基于/home/ftpuser主目录实现文件上传与下载,可以在/etc/vsftpd/vsftpd_user_conf目录创建虚拟用户各自的配置文件,创建虚拟用户配置文件主目录:


mkdir  -p     /etc/vsftpd/vsftpd_user_conf/


(8)   如下分别为虚拟用户test001、test002用户创建配置文件:


 /etc/vsftpd/vsftpd_user_conf/test001,同时创建私有的虚拟目录,代码如下:


local_root=/home/ftpuser/test001


write_enable=YES


anon_world_readable_only=YES


anon_upload_enable=YES


anon_mkdir_write_enable=YES


anon_other_write_enable=YES


/etc/vsftpd/vsftpd_user_conf/test002,同时创建私有的虚拟目录,代码如下:


local_root=/home/ftpuser/test002


write_enable=YES


anon_world_readable_only=YES


anon_upload_enable=YES


anon_mkdir_write_enable=YES


anon_other_write_enable=YES


虚拟用户配置文件内容详解:


local_root=/home/ftpuser/test002   test002虚拟用户配置文件路径;


write_enable=YES                               允许登陆用户有写权限;       


anon_world_readable_only=YES        允许匿名用户下载,然后读取文件;


anon_upload_enable=YES                  允许匿名用户上传文件,只有在write_enable=YES时该参数才生效;


anon_mkdir_write_enable=YES          允许匿名用户创建目录,只有在write_enable=YES时该参数才生效;


anon_other_write_enable=YES           允许匿名用户其他权限,例如删除、重命名等。


9.创建虚拟用户各自虚拟目录:


mkdir -p  /home/ftpuser/{test001,test002} 


chown -R ftpuser:ftpuser  /home/ftpuser