虚拟用户特点:
1、只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
2、可以建立多个虚拟用户,设置各自的密码,并且根据其用途设置相应的配置,能适应多种情况。
虚拟用户原理:
以本地系统用户为宿主(一般是不能登录系统的本地用户),然后通过虚拟用户和本地系统用户建立映射关系,实现虚拟用户登录FTP服务功能。
使用yum安装vsftpd
yum -y install vsftpd
配置虚拟用户访问的vsftpd服务
创建虚拟用户密码文件,奇数行为用户名,偶数行为密码
vim /etc/vsftpd/vir_user
生成虚拟用户数据库
[[email protected] ~]#yum -y install libdb-utils
[[email protected] ~]#db_load -T -t hash -f /etc/vsftpd/vir_user/etc/vsftpd/vir_user.db
[[email protected] ~]#chmod 700 /etc/vsftpd/vir_user.db
配置vsftpd pam验证文件:
将auth及account的所有配置行均注释掉,添加如下两行
[[email protected] ~]#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主配置文件
[[email protected]~]#vim /etc/vsftpd/vsftpd.conf
创建和配置虚拟用户各自的配置文件,文件名称是‘虚拟用户名’
[[email protected] ~]#vim /etc/vsftpd/vsftpd_viruser/test1
创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限
[[email protected] ~]#mkdir -p /ftproot/admin/
[[email protected] ~]#chown -R virftp.virftp /ftproot/admin/
重启服务
systemctl restart vsftpd
设置开机自启动
systemctl enable vsftpd
关闭防火墙
systemctl stop firewalld
setenforce 0
使用filezilla软件测试
到这里就成功啦