zoukankan      html  css  js  c++  java
  • FTP服务(3)实现基于文件验证的vsftpd虚拟用户

    1、虚拟用户

    所有虚拟用户会统一映射为一个指定的系统帐号:

      访问共享位置,即为此系统帐号的家目录各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定虚拟用户

    帐号的存储方式:

      文件:编辑文本文件,此文件需要被编码为hash格式

      奇数行为用户名,偶数行为密码

      db_load -T -t hash -f vusers.txt vusers.db

    关系型数据库中的表中:

      实时查询数据库完成用户认证

    mysql库:

      pam要依赖于pam-mysql

      /lib64/security/pam_mysql.so

      /usr/share/doc/pam_mysql-0.7/README

    2、实现基于文件验证的vsftpd虚拟用户

    • 实验环境:centos7.4(ip=192.168.218.135)
    • iptables -F 关闭防火墙,临时生效下次重启机器失效
    • setenforce 0 关闭SELinux,临时生效下次重启机器失效

    虚拟用户的实现

    所有虚拟用户会统一映射为一个指定的系统帐号:访问共享位置,即为此系统帐号的家目录
    各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定

    1)创建用户数据库文件

    vim /etc/vsftpd/vusers.txt
    user1
    user1pass
    user2
    user2pass
    db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db
    chmod 600 /etc/vsftpd/vusers.db

    2)创建系统用户和FTP目录

    useradd -r -d /data/ftp/ -s /sbin/nologin vuser
    mkdir -pv /data/ftp/pub/chmod -w /data/ftp/
    setfacl -m u:vuser:rwx /data/ftp/pub/

    3)创建pam配置文件

    vim /etc/pam.d/vsftpd.db
    auth required pam_userdb.so db=/etc/vsftpd/vusers  #这里指定数据库文件,不需要加.db
    account required pam_userdb.so db=/etc/vsftpd/vusers

    4)指定pam配置文件

    vim /etc/vsftpd/vsftpd.conf
    guest_enable=YES
    guest_username=vuser  #指定系统用户
    pam_service_name=vsftpd.db  #指定pam配置文件

    5)建立各虚拟用户独立的配置文件

    mkdir /etc/vsftpd/vusers.d/
    
    vim /etc/vsftpd/vsftpd.conf
    user_config_dir=/etc/vsftpd/vusers.d/
    
    vim /etc/vsftpd/vusers.d/user1
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES  #匿名用户可删除和修改上传的文件
    mkdir /data/user2/
    
    vim /etc/vsftpd/vusers.d/user2
    systemctl restart vsftpd
  • 相关阅读:
    SE知识整理——泛型
    IDEA 运行 SpringMVC 项目分发控制器出现404解决方案。
    快速幂/欧拉降幂
    Leetcode(双指针专题)
    剑指offer
    ns3参考
    网络知识1:最后一公里/WiMax / 4G
    备份2
    shell入门
    ns3_gdb:协议里的函数是怎么被调用的
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/9229273.html
Copyright © 2011-2022 走看看