基于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事务的隔离级别与MVCC
Apr 22 MySQL
MySQL慢查询的坑
Apr 28 MySQL
Mysql Online DDL的使用详解
May 20 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
mysql的数据压缩性能对比详情
Nov 07 MySQL
一文简单了解MySQL前缀索引
Apr 03 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
Mysql调整优化之四种分区方式以及组合分区
Apr 13 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
postgresql如何找到表中重复数据的行并删除
May 08 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
基于mysql的bbs设计(五)
2006/10/09 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
php实现将Session写入数据库
2015/07/26 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
php查询内存信息操作示例
2019/05/09 PHP
javascript 原型继承介绍
2011/08/30 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python zip()函数的使用示例
2020/09/23 Python
程序集与命名空间有什么不同
2014/07/25 面试题
HSRP的含义以及如何工作
2014/09/10 面试题
学校宣传标语
2014/06/18 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
Python实现滑雪小游戏
2021/09/25 Python
深入解析MySQL索引数据结构
2021/10/16 MySQL
Linux磁盘管理方法介绍
2022/06/01 Servers
JavaScript实现简单的音乐播放器
2022/08/14 Javascript