该博文主要记录了centos 7中使用vsftpd服务的虚拟用户配置过程,即将一个真实的系统用户映射为多个虚拟用户。

部署vsftpd虚拟用户的思路:

过程如下:

  • 建立虚拟FTP用户的账号数据库文件。
  • 创建FTP根目录及虚拟用户映射的系统用户。
  • 建立支持虚拟用户的PAM认证文件。
  • 在vsftpd.conf文件中添加支持配置。
  • 为个别虚拟用户建立独立的配置文件。
  • 重新加载vsftpd配置。
  • 使用虚拟FTP账户访问进而测试是否成功。

该博文是最初写博文时,写过的一篇博文,当初不懂排版,截图比较多,导致有人在参考这个文档时,不能够直接复制命令,所以就又抽时间写了一遍,以下博文关于一些命令的解释不够详细,毕竟是写的第二次了,所以,希望大家谅解以下,若想了解配置的详细解释,以及更多的权限配置项,可以参考我之前写的类似的博文:centos 7搭建基于虚拟用户的FTP服务 ,这篇旧的博文链接关于配置的解释比较详细,但是很多命令都是截图,这就是我写现在这篇博文的初衷。不说废话了,开始部署吧!!!

开始部署:

[root@localhost /]# yum  clean all       #清除yum缓存
[root@localhost /]# yum -y install vsftpd*           #安装vsftpd
#配置本地yum仓库或指向互联网都可。
[root@localhost /]# vim /etc/vsftpd/vusers.list      #创建文本格式的用户名/密码列表
#下面写入虚拟账号,其中,奇数行为用户名,偶数行为上一行中用户所对应的密码。
mike
123
john
456
#写完保存退出即可,上面添加了两个虚拟用户,mike的密码是123,John的密码是456。
[root@localhost /]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db  #创建Berkeley DB格式的数据库文件
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*     #为保证数据安全,所以更改下权限
[root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin test          #添加虚拟用户的映射账号
[root@localhost vsftpd]# chmod 777 /var/ftproot/
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu          为虚拟用户建立PAM认证文件
auth    required        pam_userdb.so db=/etc/vsftpd/vusers
account required        pam_userdb.so db=/etc/vsftpd/vusers
#写完上面两行,保存退出即可
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir        #为不同的虚拟用户建立独立的配置文件
[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir/
[root@localhost vusers_dir]# vim john    #写入john用户的权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#写完上面两行,保存退出即可
[root@localhost vusers_dir]# cp john mike           #给用户mike复制一份
[root@localhost vusers_dir]# vim /etc/vsftpd/vsftpd.conf     #编辑主配置文件为如下
#我为了使主配置文件简洁一些,注释类的配置我都删除了,以下为我这里主配置文件的所有内容
anonymous_enable=NO
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
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
guest_username=test
guest_enable=YES
allow_writeable_chroot=YES
anon_world_readable_only=NO
anon_other_write_enable=YES
user_config_dir=/etc/vsftpd/vusers_dir
#将主配置文件更改为如上,即可保存退出。
[root@localhost ~]# systemctl start vsftpd                    #启动vsftpd服务,使用客户端访问验证即可

想要了解更多的权限配置,请移步:centos 7搭建基于虚拟用户的FTP服务

注意:默认的所有虚拟用户登录上的位置是创建test用户时指定的家目录,在上面的配置中,也就是/var/ftproot是所有虚拟用户登录后访问的默认位置