何为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. hmtl的标签属性

    html标签< <marquee>...</marquee>普通卷动 <marquee behavior=slide>...</marquee>滑 ...

  2. bootstrap表格内容垂直居中

    td{ vertical-align: middle !important;}

  3. PC安装了MAC,那么CMD键和OPTION键什么的在哪里?

    OS X中Command键所在的位置对应windows中Alt键的位置,OS X中Option键对应windows中Shift键的位置.如果使用中有不习惯的地方,可以通过设置修改,具体方法如下: 1. ...

  4. 9、java中的final关键字

    /* final : 最终.作为一个修饰符, 1,可以修饰类,函数,变量. 2,被final修饰的类不可以被继承.为了避免被继承,被子类复写功能. 3,被final修饰的方法不可以被复写. 4,被fi ...

  5. 国内首家VR虚拟现实主题公园即将在北京推出

    近期,美国“The VOID”.澳洲“Zero Latency”两大虚拟现实主题乐园让许多爱好者兴奋至极,门票据说都已经预约到明年2月!在如此巨大的商机面前,谁将抢到国内VR虚拟现实主题公园第一块蛋糕 ...

  6. STM32F4 SPI2初始化及收发数据【使用库函数】

    我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮 ...

  7. php数据库访问

    从$res获取行数据的时候,处理mysql_fetch_row($res),还有三个方法,分别是 mysql_fetch_row($res); 返回一个所以的数组,速度较快. mysql_fetch_ ...

  8. mvc view-controller mvc annotation-driven

    1.mvc view-controller 使页面直接通过某个连接跳转,不进过mvc handler 需要加一个配置 <mvc : view-controller path="/suc ...

  9. windows下scrapy 的安装

    2016-07-18  20:27:53 安装python 根据你的需求下载python安装包,安装python(本文基于python27)https://www.python.org/downloa ...

  10. google打不开啦,咋办?

    前言:以前开发的时候一直使用google浏览器,好像是两年前的某一天突然间发现google搜索不能访问了,我喜欢将自己觉得有趣的网页做成标签页,google不能访问只能先换别的了,firefox也挺不 ...