基于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 12 MySQL
MySQL中你可能忽略的COLLATION实例详解
May 12 MySQL
MySQL官方导出工具mysqlpump的使用
May 21 MySQL
正确使用MySQL update语句
May 26 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
浅谈MySQL函数
Oct 05 MySQL
关于k8s环境部署mysql主从的问题
Mar 13 MySQL
MySQL脏读,幻读和不可重复读
May 11 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
mysql幻读详解实例以及解决办法
Jun 16 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
MySQL下载安装配置详细教程 附下载资源
Sep 23 MySQL
MySQL悲观锁与乐观锁的实现方案
SpringBoot连接MySQL获取数据写后端接口的操作方法
Mysql排序的特性详情
Nov 01 #MySQL
MySQL分区表实现按月份归类
Nov 01 #MySQL
MySQL数据库10秒内插入百万条数据的实现
MySQL面试题讲解之如何设置Hash索引
MySQL对数据表已有表进行分区表的实现
Nov 01 #MySQL
You might like
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php使用PDO方法详解
2014/12/27 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery自定义组件(导入组件)
2016/11/08 Javascript
如何提高数据访问速度
2016/12/26 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
jQuery实现可以扩展的日历
2020/12/01 jQuery
python逐行读取文件内容的三种方法
2014/01/20 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python中函数参数调用方式分析
2018/08/09 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
Django工程的分层结构详解
2019/07/18 Python
浅谈python3中input输入的使用
2019/08/02 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
python如何控制进程或者线程的个数
2020/10/16 Python
土木工程实习生自我鉴定
2013/09/19 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
房地产推广策划方案
2014/05/19 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
企业投资意向书
2015/05/09 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
golang日志包logger的用法详解
2021/05/05 Golang