基于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外连接与内连接查询的不同之处
Jun 03 MySQL
详细谈谈MYSQL中的COLLATE是什么
Jun 11 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
SQL语句多表联合查询的方法示例
Apr 18 MySQL
解决MySQL报“too many connections“错误
Apr 19 MySQL
MySQL查询日期时间
May 15 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
mysqldump进行数据备份详解
Jul 15 MySQL
分享很少见很有用的SQL功能CORRESPONDING
Aug 05 MySQL
MySQL 原理与优化之Limit 查询优化
Aug 14 MySQL
Mysql如何查看是否使用到索引
Dec 24 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
php实现的简单检验登陆类
2015/06/18 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
JS实现li标签的删除
2019/04/12 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
简单介绍Python中的struct模块
2015/04/28 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python多线程http压力测试脚本
2019/06/25 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
财务会计专业应届毕业生求职信
2013/10/18 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
单位消防安全责任书
2014/07/23 职场文书
党员对十八届四中全会的期盼思想汇报范文
2014/10/17 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
自主招生推荐信怎么写
2015/03/26 职场文书
中学总务处工作总结
2015/08/12 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
python用tkinter开发的扫雷游戏
2021/06/01 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python