基于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 18 MySQL
如何设计高效合理的MySQL查询语句
May 26 MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
千万级用户系统SQL调优实战分享
Mar 03 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 MySQL
MySQL中B树索引和B+树索引的区别详解
Mar 03 MySQL
MySQL 分区表中分区键为什么必须是主键的一部分
Mar 17 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
MySQL数据库事务的四大特性
Apr 20 MySQL
DQL数据查询语句使用示例
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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
laravel框架使用阿里云短信发送消息操作示例
2020/02/15 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
js实现最短的XML格式化工具实例
2015/03/12 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python中set常用操作汇总
2016/06/30 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
python去除文件中重复的行实例
2018/06/29 Python
基于Python实现用户管理系统
2019/02/26 Python
Python的UTC时间转换讲解
2019/02/26 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
计算机学生求职信范文
2014/01/30 职场文书
个人自荐材料
2014/05/23 职场文书
个人收入证明范本
2015/06/12 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
品德与社会教学反思
2016/02/24 职场文书
怎么用Python识别手势数字
2021/06/07 Python
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL