虚拟用户特点:

1、只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。

2、可以建立多个虚拟用户,设置各自的密码,并且根据其用途设置相应的配置,能适应多种情况。

虚拟用户原理:

以本地系统用户为宿主(一般是不能登录系统的本地用户),然后通过虚拟用户和本地系统用户建立映射关系,实现虚拟用户登录FTP服务功能。

使用yum安装vsftpd
yum -y install vsftpd

配置虚拟用户访问的vsftpd服务

创建虚拟用户密码文件,奇数行为用户名,偶数行为密码
vim /etc/vsftpd/vir_user

Centos 7 安装配置Vsftp(虚拟用户登录)

生成虚拟用户数据库
[root@vsftpd ~]#yum -y install libdb-utils
[root@vsftpd ~]#db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db
[root@vsftpd ~]#chmod 700 /etc/vsftpd/vir_user.db

配置vsftpd pam验证文件:

将auth及account的所有配置行均注释掉,添加如下两行

[root@vsftpd ~]#vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user

增加一个系统用户‘virftp’,所有虚拟用户都会映射到此用户后对文件系统进行读写操作:
mkdir /ftproot
useradd -d /ftproot -s /sbin/nologin virftp
chown -R virftp:virftp /ftproot

设置vsftpd主配置文件
mkdir /etc/vsftpd/vsftpd_viruser/
[root@vsftpd~]#vim /etc/vsftpd/vsftpd.conf
Centos 7 安装配置Vsftp(虚拟用户登录)_第1张图片

Centos 7 安装配置Vsftp(虚拟用户登录)_第2张图片

创建和配置虚拟用户各自的配置文件,文件名称是‘虚拟用户名’

[root@vsftpd ~]#vim /etc/vsftpd/vsftpd_viruser/test1

Centos 7 安装配置Vsftp(虚拟用户登录)_第3张图片

    创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限

[root@vsftpd ~]#mkdir -p /ftproot/admin/
[root@vsftpd ~]#chown -R virftp.virftp /ftproot/admin/
全部注释掉
vim /etc/vsftpd/ftpusers
Centos 7 安装配置Vsftp(虚拟用户登录)_第4张图片

重启服务
systemctl restart vsftpd
设置开机自启动
systemctl enable vsftpd
关闭防火墙
systemctl stop firewalld
setenforce 0
使用filezilla软件测试
(链接:https://pan.baidu.com/s/1vt0nJj1a-BOCOarRNnmhRg
提取码:6fl7
复制这段内容后打开百度网盘手机App,操作更方便哦)

Centos 7 安装配置Vsftp(虚拟用户登录)_第5张图片

到这里就成功啦