基于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 Shell的介绍以及安装
Apr 24 MySQL
详解MySQL 联合查询优化机制
May 10 MySQL
MySQL查看表和清空表的常用命令总结
May 26 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
MySQL千万级数据表的优化实战记录
Aug 04 MySQL
MySQL图形化管理工具Navicat安装步骤
Dec 04 MySQL
MySQL数据库完全卸载的方法
Mar 03 MySQL
将MySQL的表数据全量导入clichhouse库中
Mar 21 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
mysql函数之截取字符串的实现
Aug 14 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
深入PHP与浏览器缓存的分析
2013/06/03 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
xml和web特殊字符
2009/04/28 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
35个Python编程小技巧
2014/04/01 Python
python从入门到精通(DAY 2)
2015/12/20 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
美国零售商店:Blue&Cream
2017/04/07 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
个人自我评价分享
2013/12/20 职场文书
党校培训思想汇报
2014/01/03 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
网站推广策划方案
2014/06/04 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
小学运动会演讲稿
2014/08/25 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
图解上海144收音机
2021/04/22 无线电
go语言-在mac下brew升级golang
2021/04/25 Golang
Python基础之元组与文件知识总结
2021/05/19 Python
Pandas搭配lambda组合使用详解
2022/01/22 Python