基于mysql设置vsftpd虚拟用户

实验环境
系统:CentOS7
IP:192.168.253.128

第一步:防火墙和selinux先关了

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

第二步:安装数据库和pam_mysql模块
pam_mysql模块下载地址,http://pam-mysql.sourceforge.net/

yum install mariadb-devel pam-devel mariadb-server mariadb  gcc-c++ -y
cd /usr/local/src/
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
tar -xf pam_mysql-0.7RC1.tar.gz 
cd pam_mysql-0.7RC1
./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
make && make install

第三步:在数据库中添加虚拟用户

systemctl  start mariadb
mysql -u root   

数据库中

> create database vsftpd;
> grant all on vsftpd.* to 'vsftpd'@'localhost' identified by 'vsftpd';  #设置连接mysql用户
> use vsftpd;
> create table users(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , name VARCHAR(100) NOT NULL , password char(48) NOT NULL ,UNIQUE KEY(name));
  ##创建存放虚拟用户用户名密码的表
> insert into users(name,password) values('ice',PASSWORD('ice')); ##添加虚拟用户
> insert into users(name,password) values('cube',PASSWORD('cube'));##添加虚拟用户

MariaDB [vsftpd]> select * from users;
+----+------+-------------------------------------------+
| id | name | password                                  |
+----+------+-------------------------------------------+
|  1 | ice  | *332FFAEB8FE98A18EC0F0BCCC9578ED86E5F4841 |
|  2 | cube | *F74B2A15FEA18CA468C4E9D535B6F4430A6BC926 |
+----+------+-------------------------------------------+
2 rows in set (0.00 sec)

第四步:创建用与认证的配置文件/etc/pam.d/vsftpd.vusers

auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd  host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

/usr/local/src/pam_mysql-0.7RC1/README 这个文件有详细解释

第五步:修改主配置文件/etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.vusers  ##这个是上一步我们创建的文件的文件名
guest_enable=YES  
guest_username=vuser  

创建虚拟用户映射的系统用户
mkdir -pv /ftp/
useradd -d /ftp/vuser/ vuser
mkdir -pv /ftp/vuser/pub
chmod -R 777 /ftp/vuser/pub

第六步:启动服务,并测试
systemctl start vsftpd

ss -nlt
这里写图片描述

用虚拟用户登陆测试一下
yum install ftp -y 先下载一下客户端工具

测试一下
这里写图片描述

还可以进行虚拟用户的权限控制
第一步:在主配置文件中添加

user_config_dir=/etc/vsftpd/vusers_config/

第二步:创建这个/etc/vsftpd/vusers_config/目录

mkdir -pv /etc/vsftpd/vusers_config/

第三步:进行权限控制
我们现在有两个用户 比如 我们允许ice用户有创建目录的权限。但是不允许cube用户有创建目录的权限。

echo 'anon_mkdir_write_enable=YES' > /etc/vsftpd/vusers_config/ice
echo 'anon_mkdir_write_enable=NO' > /etc/vsftpd/vusers_config/cube

这里的权限控制指令常用的有下面几个

  • anon_upload_enable=YES
  • anon_mkdir_write_enable=YES
  • anon_other_write_enable=YES

第四步:重启服务 测试一下

systemctl  restart vsftpd

这里写图片描述

猜你喜欢

转载自blog.csdn.net/L835311324/article/details/81877622