基于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 31 MySQL
MySQL之select、distinct、limit的使用
Nov 11 MySQL
防止web项目中的SQL注入
Dec 06 MySQL
MySQL创建定时任务
Jan 22 MySQL
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
mysql 排序失效
May 20 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
mysql查看表结构的三种方法总结
Jul 07 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配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
html中table数据排序的js代码
2011/08/09 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python调用百度语音识别api
2018/08/30 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
怎样自定义一个异常类
2016/09/27 面试题
优秀团支部事迹材料
2014/02/08 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
文秘应届生求职信
2014/07/05 职场文书
运动员获奖感言
2014/08/15 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书