一、简介

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等

二、特点

①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;

②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;

③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;

④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

三、基于mysql实现vsftp的账号管理

1.安装mysql和pam_mysql[root@bogon yum.repos.d]# yum -y install vsftpd mysql-server mysql-devel pam_mysql

2.准备数据库mysql> create database vsftpd;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on vsftpd.* to vsftpd@localhost identified by 'wangfeng7399';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all on vsftpd.* to vsftpd@'127.0.0.1' identified by 'wangfeng7399';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

3.创建表mysql> create table user(id int AUTO_INCREMENT primary key NOT NULL,name varchar(50) binary NOT NULL, password char(48) binary NOT NULL);

4.添加测试的虚拟用户mysql> insert into user(name,password)values('lili',password('wodehao123')),('tom',password('wodehao123'));

说明:为了确保账号的安全,本处使用的为mysql的password加密机制

5.配置pam认证所需的文件

编辑/etc/pam.d/vsftp.conf添加如下行auth required /lib64/security/pam_mysql.so user=vsftpd passwd=wangfeng7399 host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd passwd=wangfeng7399 host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2

6.修改vsftpd的配置文件,使其适应mysql认证

建立虚拟用户映射的系统用户及对应的目录[root@bogon ~]# useradd -s /sbin/nologin -d /var/ftproot vuser

[root@bogon ~]# chmod go+rx /var/ftproot

请确保/etc/vsftpd/vsftpd.conf中已经启用了一下选项anonymous_enable=YES

local_enable=YES

write_enable=YES

anon_upload_enable=NO

并在文件的末尾添加

guest_enable=YES

guest_username=vuser

anon_umask=022

并确保pam_service_name选项的值如下所示

pam_service_name=vsftpd.mysql

7.启动服务,并使服务能够开机自动启动[root@bogon ~]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

[root@bogon ~]# chkconfig vsftpd on

8.测试

测试成功了!

9.创建一个文件试试,要修改配置文件是其有创建文件的权限anon_mkdir_write_enable=YES

  10.配置虚拟用户具有不同的访问权限

配置vsftpd为虚拟用户使用配置文件目录

编辑vstpd的主配置文件,添加如下行user_config_dir=/etc/vsftpd/vuser_dir

创建所需要目录,为虚拟用户提供配置文件[root@bogon ftproot]# mkdir /etc/vsftpd/vuser_dir

[root@bogon ftproot]# cd /etc/vsftpd/vuser_dir

[root@bogon vuser_dir]# touch lili tom

配置虚拟用户的访问权限

虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。anon_upload_enable=YES

大功告成,本人水平有限,如有错误,请各位大神批评指正!!!

vsftp服务器mysql认证_基于mysql控制vsftp的用户认证机制相关推荐

  1. 电机调速设计并用matlab仿真,终稿毕业论文设计_基于PWM控制的直流电动机调速系统设计及MATLAB仿真.doc最终版(备份存档)...

    <毕业论文_基于PWM控制的直流电动机调速系统设计及MATLAB仿真.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)毕业论文设计_基于PWM控制的直流电动机调速系统设计及M ...

  2. opensips mysql 认证_基于ubuntu中使用mysql实现opensips用户认证的解决方法

    1 MySQL支持 1.1 MySQL模块支持 默认安装时,不包含MySQL模块. opensipsctlrc文件中包含了数据库配置的信息,要想让opensips支持mysql数据库,在编译安装的时候 ...

  3. svn mysql认证_SVN基于MySQL认证

    SVN的简介和工作原理 Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件.Subversion支持linux和win ...

  4. elasticsearch 数据类型_基于 MySQL Binlog 的 Elasticsearch 数据同步实践

    来源;马蜂窝 一.背景 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存 ...

  5. netty实现mysql协议_基于Netty模拟解析Binlog

    前言 最近一段时间一直再看mysql binlog相关的内容,也整理了几篇相关的文章,对mysql的事件以及通讯协议在理论上有了一个大概的了解,但是缺少实战:本文的目的就是从实战出发,了解binlog ...

  6. keepalived mysql双主架构图_基于MySQL双主的高可用解决方案理论及实践

    MySQL在互联网应用中已经遍地开花,但是在银行系统中,还在生根发芽的阶段.本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求.各高可用技术特点对比.实施.测试等过程进行整理,完善Mysql ...

  7. mysql研究内容_基于MySQL数据库的数据管理的研究

    [摘 要]MySQL 是一种开放源代码的关系型数据库管理系统,MySQL数据库系统使用最常用的数据库管理语言,即结构化查询语言进行数据库管理.缓存管理是对于文件数据在内存中的特殊管理,基于内存管理,向 ...

  8. svn基于mysql认证_Svn基于mysql做登陆认证

    不做权限控制的登陆认证 基础环境 Centos 6 Apache 2.2 Svn 1.6 Mysql 5.1 yum -y install mysql mysql-devel mysql-server ...

  9. mysql 数据日志分析_基于mysql数据库的日志分析系统

    现如今,日志已经成为了我们分析系统及相关服务的一个重要工具.而日志也具有其相对较为固定的格式以便于进行统计查询.其大致格式如下: 日期时间            主机            进程[pi ...

最新文章

  1. android radiobutton 分组,Android 第十课——UI RadioButton
  2. Nature子刊:三代Nonopore测序数据耐药性分析软件NanoOK RT
  3. 干货|十大产业方向深度解析!《2020科技产业趋势报告》
  4. Jquery加载dom元素
  5. 共享上网 路由器设置图解
  6. dz论坛修改html编辑器,discuz二次开发更换百度ueditor编辑器
  7. 第一周例行报告(补)
  8. eval语法报错 ie10_JavaScript中eval语句浅尝
  9. android 还可以输入多少个字符
  10. 使用Visual Studio对项目重命名
  11. Shell date连接mysql执行指令
  12. 2020-06-21
  13. B样条曲线(B-spline Curves)
  14. DJ Mix Pads 2 - Remix Version for Mac(独特DJ混音创作软件)
  15. 经纬度十进制与度分秒换算及数据库实现
  16. mfc 控件显示 被遮挡_MFC控件显示和隐藏的问题
  17. 2020德勤面试开始了吗_四大面试-德勤面试流程免费给你,还不收好?截止2020年9月...
  18. AI把英语系新生吓退学?别急,我们从来都是那只懒蚂蚁
  19. 鸿蒙3.0 APP混合开发闪退问题笔记
  20. 如何把安卓机用出Ipad的自由感 | 安卓党电子手帐

热门文章

  1. c++ vector api summary
  2. java 注解校验_Java开发编写自定义校验注解和校验器
  3. 基于Python-turtle库绘制皮卡丘、多边形、星空
  4. 视频压缩编码基础知识(上)
  5. UE4之vs2019IntelliSense错误
  6. 28181之spvmn测试视频
  7. 组成原理---补码加减法,原码一两位乘法,补码一两位乘法,754标准
  8. 图解:怎么样安装TortoiseSVN以及汉化
  9. redis返回的结果是null_Spring AOP 用注解封装 redis 缓存
  10. linux mint 19 中国镜像,Beta版Linux Mint 19.3 Tricia的ISO镜像已开放下载