基于MySql验证的vsftpd虚拟用户


Posted in MySQL onNovember 07, 2021

1. Mysql安装

yum -y install mariadb-server
systemctl enable --now mariadb.service

1.2 建表建库建用户

mysql -e "CREATE DATABASE vsftpd;USE vsftpd;
CREATE TABLE users (id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL);
INSERT INTO users(name,password) values('qiu',password('123456'));
INSERT INTO users(name,password) values('zhang',password('654321'));"
mysql -e "select * from vsftpd.users;"

基于MySql验证的vsftpd虚拟用户

1.3 创建远程连接账户

mysql -e "create user vsftpd@'192.168.31.%' identified by 'Pana#123';"
mysql -e "grant all on vsftpd.* to vsftpd@'192.168.31.%';"

2. 安装FTP服务器

2.1 安装vsftpd

yum install -y vsftpd

2.2 安装pam_mysql

yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
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-mods-dir=/lib64/security 
make install

2.2 建立pam认证所需文件

cat > /etc/pam.d/vsftpd.mysql<<EOF
auth required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=Pana#123 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
EOF

注意:以上参考 README文档
crypt 加密方式:
0表示不加密
1表示crypt(3)加密
2表示使用mysql password()函数加密
3表示md5加密
4表示sha1加密

2.3 建立vsftpd用户

mkdir -pv /data/ftproot/upload
useradd -d /data/ftproot -s /sbin/nologin -r vuser
setfacl -m u:vuser:rwx /data/ftproot/upload

2.4 修改vsftpd配置文件

mkdir /etc/vsftpd/conf.d/
sed -Eri "s#(pam_service_name=vsftpd)#\1.mysql#" /etc/vsftpd/vsftpd.conf
echo "guest_enable=YES" >> /etc/vsftpd/vsftpd.conf
echo "guest_username=vuser" >> /etc/vsftpd/vsftpd.conf

2.5 重启vsftpd服务

systemctl enable --now vsftpd

到此这篇关于基于MySql验证的vsftpd虚拟用户的文章就介绍到这了,更多相关MySql vsftpd虚拟用户内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 表空间碎片的概念及相关问题解决
May 07 MySQL
分析MySQL抛出异常的几种常见解决方式
May 18 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
详解MySQL集群搭建
May 26 MySQL
浅谈MySQL next-key lock 加锁范围
Jun 07 MySQL
MySQL中datetime时间字段的四舍五入操作
Oct 05 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 MySQL
详解Mysql数据库平滑扩容解决高并发和大数据量问题
May 25 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
做网页的一些技巧
2007/02/01 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
python实现控制台输出彩色字体
2020/04/05 Python
python如何修改文件时间属性
2021/02/05 Python
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
乡下人家教学反思
2014/02/01 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
一年级小学生评语大全
2014/12/25 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
《灰雀》教学反思
2016/02/19 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python