简介
Vsftpd 基于系统用户访问 FTP 服务器, 当系统用户越来越多时会变得不利于管理且对系统安全形成隐患, 因此可以使用 Vsftpd 的虚拟用户配置来实现把虚拟用户映射到真实用户并设置相应权限的效果
前期准备
准备一台 Centos7 虚拟机, 配置 IP 地址, 同步系统时间, 关闭防火墙和 selinux
安装 Vsftpd
[[email protected] ~]# yum install vsftpd -y
安装依赖包
[[email protected] ~]# yum install yum install pam* libdb-utils libdb* -y
虚拟用户配置
配置虚拟用户文件
- [[email protected] ~]# vi /etc/vsftpd/ftpusers.txt
- jack #用户名
- 123456 #密码
- tom
- 123123
创建数据库认证文件
- [[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
- # 修改权限为 700
- [[email protected] ~]# chmod 700 /etc/vsftpd/vsftpd_login.db
配置 pam 认证文件
- # 先进行备份
- [[email protected] ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
- # 原有的配置内容需要注释或删除, 否则虚拟用户将无法登陆
- [[email protected] ~]# vi /etc/pam.d/vsftpd
- #%PAM-1.0
- auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
- account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
创建真实用户
[[email protected] ~]# useradd -s /sbin/nologin ftpuser
修改 Vsftpd 配置文件
- [[email protected] ~]# vi /etc/vsftpd/vsftpd.conf
- # 启用 Pam 认证
- pam_service_name=vsftpd
- # 启用虚拟用户
- guest_enable=YES
- # 虚拟用户映射的真实用户
- guest_username=ftpuser
- # 虚拟用户配置文件目录
- user_config_dir=/etc/vsftpd/vsftpd_user_conf
- # 虚拟用户拥有和本地用户相同的权限
- virtual_use_local_privs=YES
创建虚拟用户配置文件
- [[email protected] ~]# vi /etc/vsftpd/vsftpd_user_conf/jack
- local_root=/home/ftpuser/jack
- write_enable=YES
- [[email protected] ~]# vi /etc/vsftpd/vsftpd_user_conf/tom
- local_root=/home/ftpuser/tom
- write_enable=YES
创建虚拟用户目录
[[email protected] ~]# mkdir /home/ftpuser/{tom,jack}
测试验证
- [[email protected] ~]#echo jack> /home/ftpuser/jack/1.txt
- [[email protected] ~]#echo tom> /home/ftpuser/tom/2.txt
启动 Vsftpd 服务器
[[email protected] ~]# systemctl start vsftpd
登陆 jack
登陆 tom
来源: http://www.bubuko.com/infodetail-3641854.html