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
  • 相关阅读:
    springboot+vue实现前后端分离之前端vue部分(spring boot 2.5.4/vue.js 3.2.4)
    如何给一个vue项目重命名(vue.js 3.2.4)
    用git命令上传一个项目到gitee(git 2.30.2)
    kde plasma 5.21:为应用程序添加桌面快捷方式(kubuntu 21.04)
    @vue/cli 4.5.13:创建一个vue.js3.x项目(vue.js 3.2.4)
    linux:ubuntu21.04:npm安装@vue/cli时报错(@vue/cli 4.5.13/npm 7.21.0/node 14.17.1)
    python 装饰器模式
    staticmethod classmethod property
    presto 获取hive 表最大分区
    ALIGN(v, a)
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/9229273.html
Copyright © 2011-2022 走看看