基于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 8.0 Online DDL快速加列的相关总结
Jun 02 MySQL
浅谈mysql增加索引不生效的几种情况
Jun 23 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
MySQL索引是啥?不懂就问
Jul 21 MySQL
MySQL数据库超时设置配置的方法实例
Oct 15 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
mysql 获取时间方式
Mar 20 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Jun 14 MySQL
mysql sql常用语句大全
Jun 21 MySQL
Mysql的Table doesn't exist问题及解决
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
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
PHP实现简单登录界面
2019/10/23 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
js实现随机8位验证码
2020/07/24 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
vue之延时刷新实例
2019/11/14 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python实现登录接口的示例代码
2017/07/21 Python
快速入门python学习笔记
2017/12/06 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
python脚本后台执行方式
2019/12/21 Python
python中的itertools的使用详解
2020/01/13 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
班级文化建设标语
2014/06/23 职场文书
土地租赁意向书
2014/07/30 职场文书
国际会计专业求职信
2014/08/04 职场文书
优秀班组事迹材料
2014/12/24 职场文书