基于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命令行操作时的编码问题详解
Apr 14 MySQL
MySQL 重写查询语句的三种策略
May 10 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
Mysql忘记密码解决方法
Feb 12 MySQL
MySQL七大JOIN的具体使用
Feb 28 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
MySQL 外连接语法之 OUTER JOIN
Apr 09 MySQL
MySQL 数据 data 基本操作
May 04 MySQL
Mysql中常用的join连接方式
May 11 MySQL
MySQL sql模式设置引起的问题
May 15 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
JS 对象介绍
2010/01/20 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
Python的标准模块包json详解
2017/03/13 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
C#基础面试题
2016/10/17 面试题
英语专业求职信
2014/07/08 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
会计工作态度自我评价
2015/03/06 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
入党心得体会
2019/06/20 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL