基于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 Innodb关键特性之插入缓冲(insert buffer)
Apr 08 MySQL
mysql在项目中怎么选事务隔离级别
May 25 MySQL
一文读懂navicat for mysql基础知识
May 31 MySQL
MySQL连接查询你真的学会了吗?
Jun 02 MySQL
分析mysql中一条SQL查询语句是如何执行的
Jun 21 MySQL
MySQL系列之十四 MySQL的高可用实现
Jul 02 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
mysql 获取时间方式
Mar 20 MySQL
Mysql使用全文索引(FullText index)的实例代码
Apr 03 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySQL三种方式实现递归查询
Apr 18 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python实现五子棋小游戏
2020/03/25 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
国际贸易专业推荐信
2013/11/15 职场文书
材料采购员岗位职责
2013/12/17 职场文书
校园十大歌手策划书
2014/02/01 职场文书
小学生学习感言
2014/03/10 职场文书
《长相思》听课反思
2014/04/10 职场文书
我的长生果教学反思
2014/04/28 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
工作失职检讨书500字
2014/10/17 职场文书
继续教育个人总结
2015/03/03 职场文书
鲁冰花观后感
2015/06/10 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技