一、演示环境:

IP地址

操作系统

服务器角色

192.168.1.144

CentOS   6.9

vsftpd服务器

192.168.1.145

CentOS   6.9

mysql服务器

二、安装前准备:

1、服务器时间校对

2、配置epel源

三、mysql服务器所需执行的操作:

1、安装软件包:# yum -y install mysql-server mysql-devel ftp

2、启动mysql,检查3306号端口是否被监听:# service mysqld start  # ss -tnlp | grep :3306

3、初始化mysql:# mysql_secure_installation     //设置root用户密码为123456

4、创建数据库、表,并授权远程用户登录:

# mysql -uroot -p

mysql> create database ftp;

mysql> grant select on ftp.* to ftpuser@'192.168.1.144' identified by '123456';

mysql> flush privileges;

mysql> use ftp;

mysql> create table user(id int unsigned auto_increment not null primary key,name varchar(20) binary not null,password char(48) binary not null);

mysql> desc user;

5、添加FTP虚拟用户marion和keyso:

mysql> insert into user(name,password) values('marion',password('mftpasswd')),('keyso',password('kftpasswd'));

备注:虚拟用户marion使用密码mftpasswd登录FTP,虚拟用户keyso则使用密码kftpasswd登录FTP

mysql> select * from user;

备注:账号密码使用password()函数加密后存储

四、vsftpd服务器所需执行的操作:

1、安装软件包:# yum -y install vsftpd pam_mysql mysql

2、使用账号ftpuser远程登录mysql服务器:

3、创建认证所需文件vsftpd.mysql:

# rpm -ql pam_mysql | grep pam_mysql.so  -->  /lib64/security/pam_mysql.so

# vim /etc/pam.d/vsftpd.mysql,添加如下两行代码:

auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2

备注:

数字

代表的含义

0

不加密,明文

1

使用crypt函数加密

2

使用mysql password()函数加密

3

使用md5加密

4

使用sha1加密

4、创建虚拟用户映射的系统用户:

# useradd -s /sbin/nologin -d /ftpdocs vuser    //新的家目录ftpdocs必须事先不存在,该命令会自动创建

# chmod go+rx /ftpdocs

5、修改主配置文件/etc/vsftpd/vsftpd.conf,确认启用如下选项:

chroot_local_user=YES

pam_service_name=vsftpd.mysql

guest_enable=YES

guest_username=vuser

user_config_dir=/etc/vsftpd/vusers

use_localtime=YES

6、创建对应的虚拟用户配置文件目录:# mkdir -pv /etc/vsftpd/vusers

7、配置不同的虚拟用户具有不同的访问权限:

# cd /etc/vsftpd/vusers

# vim marion

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# cp marion keyso

# sed -i 's#YES#NO#g' keyso

备注:每个虚拟用户的配置文件名同虚拟用户的用户名。虚拟用户所能执行的权限都由匿名用户的相关选项定义。所有的虚拟用户都映射到系统用户vuser上。

8、启动vsftpd,检查21号端口是否被监听:# service vsftpd start  # ss -tnlp | grep :21

五、用户认证测试:

在mysql服务器上分别使用虚拟用户marion和keyso远程登录FTP:# ftp 192.168.1.144,测试上传文件、删除文件、创建目录和删除目录等权限

使用虚拟用户marion登录FTP:

使用虚拟用户keyso登录FTP:

本文转自Marion0728  51CTO博客,原文链接:http://blog.51cto.com/qiuyue/2057761,如需转载请自行联系原作者

vsftpd基于mysql_vsftpd基于mysql实现用户认证相关推荐

  1. linux ftp 团队认证,linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建 1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 ...

  2. linux ftp mysql_linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ft ...

  3. shiro mysql_Shiro系列之Shiro+Mysql实现用户认证(Authentication)

    网上大多数介绍Apache Shiro的资料都是使用ini文件的简单配置为例,很少用讲到如何配合数据库来实现用户认证的.我也是刚刚开始接触Shiro,在这里介绍一个入门级别的Shiro+Mysql的配 ...

  4. 基于 JWT + Refresh Token 的用户认证实践

    HTTP 是一个无状态的协议,一次请求结束后,下次在发送服务器就不知道这个请求是谁发来的了(同一个 IP 不代表同一个用户),在 Web 应用中,用户的认证和鉴权是非常重要的一环,实践中有多种可用方案 ...

  5. MySQL普通用户无法本地登录的解决方法及MySQL的用户认证算法

    在安装完成MySQL后,我们通常添加拥有相应权限的普通用户用来访问数据库.在使用普通用户本地登录数据库的时候,经常会出现怎么登录也无法登录的情况. 例如,我的MySQL中的用户为: mysql> ...

  6. python 用户认证_python基于mysql的用户认证

    首先,创建mysql用户users表 1 2 3 4 5 create table users ( id int NOT NULL primary key auto_increment, userna ...

  7. mysql邮箱认证_邮件服务系列postfix+sasl+mysql实现用户认证功能

    1.卸载bind [root@mail ~]# rpm -e bind-utils 2.安装bind97-utils bind97-libs bind97 [root@mail ~]# yum ins ...

  8. Spring Cloud Alibaba 统一门户:基于网关的统一用户认证方案

    本讲咱们涉及以下三方面内容: 传统的用户认证方案: JWT 与 JJWT: 基于网关的统一用户认证. 传统的用户认证方案 我们直奔主题,什么是用户认证呢?对于大多数与用户相关的操作,软件系统首先要确认 ...

  9. mysql 查询用户最后登陆时间_弄懂mysql:mysql的通信协议

    我准备从mysql的实现出发,将mysql好好理解一下,从他的逻辑结构一层一层出发,感受一下,所以再学第一层之前,要先对mysql整体的逻辑结构有一个初步认识 mysql逻辑架构 整体来说,MySql ...

  10. vsftpd安装以及配置FTP虚拟用户实践

    前言正如vsftpd官方宣传中所说Probably the most secure and fastest FTP server for UNIX-like systems.我相信这是大多数人选择vs ...

最新文章

  1. 图像语义分割模型DeepLab训练Cityscapes数据集过程记录
  2. #define const typedef
  3. java 上下文加载器_【深入理解Java虚拟机 】线程的上下文类加载器
  4. 676. 实现一个魔法字典
  5. 4g内存只有1.6g可用_linux服务器内存异常,究竟在哪消耗了2.5G?
  6. WPF之X名称空间学习
  7. java学习二---对象和内存管理
  8. 单片机ADC采样算法----递推平均值采样法
  9. c# Open Source
  10. VO、DTO、DO、PO的概念
  11. linux虚拟机ping通主机
  12. 《Oracle 11g 数据库基础教程》读书笔记:
  13. js word 预览_关于Word打印的2个秘密,90%的人都不知道
  14. 天涯明月刀服务器维护事假,《天涯明月刀ol》12月16日服务器维护公告
  15. 车辆vin信息(含发动机号)
  16. 零代码工具推荐 八爪鱼采集器
  17. 【手机】手机代码查询命令大集合
  18. 2011届移动开发者大会
  19. 论文解读 | Explaining and Harnessing Adversarial Examples
  20. 安卓平台的功耗一般分析

热门文章

  1. 腾讯QQ、新浪微博第三方登录接口申请说明
  2. 链表Linked List
  3. 2014腾讯实习生招聘数组墙算法
  4. MATLAB立体椭球,matlab拟合三维椭球
  5. python bytes类型中是ascii码_Python3 中bytes数据类型深入理解(ASCII码对照表)
  6.  Kaggle基本知识
  7. php实现用百度ip地址查询接口查询ip归属地
  8. Chrome笔试平台 摄像头无法开启 | 摄像头图像黑屏 问题解决
  9. laravel admin里百度编辑器自定义路径和文件名
  10. Android样式系列:自定义按钮样式