基于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 05 MySQL
解决MySQL存储时间出现不一致的问题
Apr 28 MySQL
详解Mysql和Oracle之间的误区
May 18 MySQL
MySQL时间盲注的五种延时方法实现
May 18 MySQL
MySQL中in和exists区别详解
Jun 03 MySQL
MySQL 全文检索的使用示例
Jun 07 MySQL
解决mysql模糊查询索引失效问题的几种方法
Jun 18 MySQL
MySQL开启事务的方式
Jun 26 MySQL
MySQL系列之三 基础篇
Jul 02 MySQL
mysq启动失败问题及场景分析
Jul 15 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
CentOS MySql8 远程连接实战
Apr 19 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
php 归并排序 数组交集
2011/05/10 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
prototype class详解
2006/09/07 Javascript
用YUI做了个标签浏览效果
2007/02/20 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
js实现动态时钟
2020/03/12 Javascript
详解Vue之计算属性
2020/06/20 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现rsa加密实例详解
2017/07/19 Python
Python学习入门之区块链详解
2017/07/25 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
圣诞节红领巾广播稿
2014/02/03 职场文书
食堂卫生管理制度
2015/08/04 职场文书
八年级语文教学反思
2016/03/03 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书