虚拟用户特点:
1、只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。
2、可以建立多个虚拟用户,设置各自的密码,并且根据其用途设置相应的配置,能适应多种情况。
虚拟用户原理:
以本地系统用户为宿主(一般是不能登录系统的本地用户),然后通过虚拟用户和本地系统用户建立映射关系,实现虚拟用户登录FTP服务功能。
使用yum安装vsftpd
yum -y install vsftpd
。。。
配置虚拟用户访问的vsftpd服务
创建虚拟用户密码文件,奇数行为用户名,偶数行为密码
vim /etc/vsftpd/vir_user
生成虚拟用户数据库
[root@vsftpd ~]#yum -y install libdb-utils
生成加密文件
执行命令[root@vsftpd ~]#db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db
db_load应该是linux下创建虚拟账户:
**解释:**选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。
-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码
hash就是使用hash码加密
db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db
前提就是在linux下配置好Vsftp环境确保db_load命令可以使用就是将用户文本信息文件转换为db数据库并使用hash加密。
修改权限
[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
各自的分工不一样的,auth 是认证,比如密码等,account是管理,比如登录时间,登录平台等限制。
增加一个系统用户‘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 (看着改......)
guest_enable=YES
guest_username=virftp
pam_service_name=vsftpd
user_config_dir=/etc/vsftp/vsftpd_viruser
allow_writeable_chroot=YES
-- INSERT --
创建和配置虚拟用户各自的配置文件,文件名称是‘虚拟用户名’
[root@vsftpd ~]#vim /etc/vsftpd/vsftpd_viruser/test1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/ftproot/admin/
创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限
[root@vsftpd ~]#mkdir -p /ftproot/admin/
[root@vsftpd ~]#chown -R virftp.virftp /ftproot/admin/
全部注释掉
vim /etc/vsftpd/ftpusers
重启服务
cd
设置开机自启动
systemctl enable vsftpd
关闭防火墙
systemctl stop firewalld
setenforce 0
使用filezilla软件测试
(链接:https://pan.baidu.com/s/1vt0nJj1a-BOCOarRNnmhRg
提取码:6fl7
复制这段内容后打开百度网盘手机App,操作更方便哦)
到这里就成功啦