何为vsftpd

  vsftpd:very secure ftp daemon

  程序:/usr/sbin/vsftpd

  配置文件:/etc/vsftpd/vsftpd.conf

  其用户分为:匿名用户(映射至某一固定的系统用户),本地用户(root及系统用户),虚拟用户(存储在文件或其他服务器端数据库中的用户);


  以下将以CentOS 7 讲解具体配置过程:

  [此机制需要pam_mysql.so]

  主要分为以下几个步骤:

    1.运行环境准备和配置

    2.mysql数据库配置

    3.pam配置

    4.细节优化


  1.运行环境准备和配置

  由于CentOS 7yum源中没有pam-mysql,故需自己编译安装;

  首先安装开发环境:

    # yum -y groupinstall "Development Tools" "Server Platform Development"

  另外还需要的程序包有:openssl-devel  pam-devel  mariadb-devel

  下载好pam-mysql后解压缩,开始编译:

    # ./configure --with-openssl=/usr --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

    # make && make install

  安装完成后,在/lib64/security目录下可以看到:

  


  2.数据库配置

  安装mariadb-server

  创建一个测试库/表,填入数据,如图所示:

  

  (此处用的数据库是test,表是vsftpd)

  并授权一个用户vsftpd,使其有查权限:

  mysql> GRANT select ON test.* TO vsftpd@localhost IDENTIFIED BY '123456';

  mysql> GRANT select ON test.* TO vsftpd@127.0.0.1 IDENTIFIED BY '123456';

  自行测试一下此用户,没问题进入下一步。


  3.pam配置

  # cd /etc/pam.d

  # vim vsftpd.mysql

  写入

auth required pam_mysql.so user=vsftpd passwd= host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=
account required pam_mysql.so user=vsftpd passwd= host=localhost db=test table=vsftpd usercolumn=name passwdcolumn=passwd crypt=

  其中:

pam_mysql.so  //相对路径,如果此模块置于/lib64/security目录下,则可直接写文件名,当然,写全路径也没问题;
user=vsftpd
passwd=123456 //授权登陆mysql时的用户
host=localhost //本地主机
db=test //存放虚拟用户的数据库名
table=vstfpd
usercolumn=name
passwdcolumn=passwd
crypt=2 //密码加密方式代号
//0:不加密
//1:使用crypt(3)加密
//2:mysql函数加密password();
//3:md5加密
//4:SHA1加密

  4.细节优化

  创建系统用户作为映射:

    # useradd -s /sbin/login -d /ftproot vuser

  修改其权限,使其他用户有读、执行权限:

    # chmod go+rx /ftproot

  编辑配置文件/etc/vsftpd/vsftpd.conf:

    

  

  添加: guest_enable=YES
      guest_username=vuser
  修改此项为:pam_service_name=vsftpd.mysql
  确保这些为YES:
      anonymous_enable=YES
      local_enable=YES
      write_enable=YES

  保存退出,启动服务:

    # systemctl start vsftpd.service

  效果如下:

  


vsftpd基于pam_mysql的虚拟用户机制的更多相关文章

  1. Linux上FTP部署:基于mariadb管理虚拟用户

    FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...

  2. vsftpd服务安装与虚拟用户配置

    vsftpd的全名是“Very secure FTP Daemon” 一.安装vsftpd安装db4-util用于生成认证文件 yum -y install db4-utils 安装vsftpd yu ...

  3. 搭建vsftpd文件服务器并创建虚拟用户

    一.安装     1. 查看是否安装vsftpd         rpm -qa | grep vsftpd     2. 安装          yum -y install vsftpd      ...

  4. 构建基于虚拟用户的vsftpd服务器

    安装: [root@server ~]# yum install -y vsftpd [root@server ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd / ...

  5. Vsftpd: 基于PAM认证的虚拟用户和匿名用户

    目录 环境说明效果说明及截图①. 安装组件②. 系统账户建立③. 编辑vsftpd的配置文件④. 生成虚拟用户的数据库文件⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件⑥. ...

  6. CentOS平台部署vsftp(基于虚拟用户)

    1. 安装FTP 1 2 [root@task ~]# yum install vsftpd –y [root@task ~]# chkconfig vsftpd on          # 配置开机 ...

  7. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  8. vsftpd 创建虚拟用户

    1.添加一个宿主用户:useradd vsftpd -s /sbin/nologin2.安装db4-utils,通过本底数据文件实现虚拟用户访问yum install db4-utils3.创建ftp ...

  9. CentOS6.3下搭建vsftpd(采用虚拟用户设置)

    CentOS6.3如果在安装的时候所有安装选项都打勾的话就含有单间vsftpd必备的软件:vsftpd.pam*.db4* 检查是否安装: [root@centos6 ~]# rpm -qa | gr ...

随机推荐

  1. uva 11582

    #include <iostream> #include <map> #include <cmath> #include <vector> #inclu ...

  2. 【转载】7 Steps for Calculating the Largest Lyapunov Exponent of Continuous Systems

    原文地址:http://sprott.physics.wisc.edu/chaos/lyapexp.htm The usual test for chaos is calculation of the ...

  3. Codeforces 733F Drivers Dissatisfaction

    题意:有n个点,m条边,每条边有不满意度w[i],以及减小一个不满意度代价c[i],问给你s元用来减少代价,找到一个总不满意度最小的生成树,保证有解.(减少后的不满意度可以为负数)思路:显然所有的钱都 ...

  4. Sea.js学习1——初识Sea.js

    Sea.js 是一个成熟的开源项目,核心目标是给前端开发提供简单.极致的模块化开发体验. 使用 Sea.js,在书写文件时,需要遵守 CMD (Common Module Definition)模块定 ...

  5. iphone field test 源码

    Iphone工程模式读取周围BTS信息的路测程序:包括后台和界面.-iphone field test, used for reading the BTS infomation nearby. 下载地 ...

  6. HackerRank "TBS Problem" ~ NPC

    It is marked as a NPC problem. However from the #1 code submission (https://www.hackerrank.com/Charl ...

  7. SparkContext源码阅读

    SparkContext是spark的入口,通过它来连接集群.创建RDD.广播变量等等. class SparkContext(config: SparkConf) extends Logging w ...

  8. [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

    写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...

  9. Bootstrap整体架构

    大多数Bootstrap的使用者都认为Bootstrap只是提供了CSS组件和JavaScript插件,其实CSS组件和JavaScript插件只是Bootstrap框架的表现形式而已,他们都是构建在 ...

  10. java基础要点

    Java语言是现在比较常用的编程语言,因为Java语言可以编写桌用程序,也可以编写web程序,还能编写嵌入式程序.这是由于相比脚本语言,Java 的运行速度要快.而对于底层语言,Java与平台无关,可 ...