安装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