• ftp 实用户和虚拟用户共存设置


    老习惯先吐槽,总共花费接近6个小时,遇到各种奇葩问题,决定把问题记录下来,作为知识储备~

    调整前背景:  

      vsftp已有全部为实体用户,不同的用户对不同的目录有权限,但现在由于需求,后续接近上百的用户要使用不同账号,且不同账号对不同目录有不同权限,这种需求创建实体用户是不现实的,且以后做ftp迁移也极为不方便。

    操作步骤:

    1、修改配置文件 /etc/vsftpd/vsftpd.conf

      user_config_dir=/etc/vsftpd/userconfig (该配置已存在,用于控制用户的不同操作目录)

      guest_enable=YES 开启虚拟用户

      guest_username=ftpvirtual 虚拟用户映射到的实用户ftpvirtual ,即系统用户,用户名称任意

      pam_service_name=vsftpd  pam验证文件,名称任意,但是要和/etc/pam.d/下文件名保持一致,我这边均是vsftpd ,默认。

    2、创建被映射的系统用户

    #useradd -s /sbin/nologin -d /data/virtual ftpvirtual

    #mkdir -p /data/virtual

    #chown -R ftpvirtual: /data/virtual/

    3、创建虚拟用户 vtest1 vtest2

    a、创建虚拟用户文件virtual

    #touch virtual 

    #vim virtual   奇数行是账户名,偶数行是账户密码,!!!用户名和用户密码前后一定不要留空格,我就吃了大亏,好久才查到原因!

    添加  vtest1

        vtest1pass

       vtest2

       vtest2pass  

    b、创建虚拟用户文件库 

    #db_load -T -t hash -f /etc/vsftpd/virtual /etc/vsftpd/virtual.db  有的系统应该是db4_load ,还没有细追究这些问题,后续补充

    此时,可以看到生成了用户db文件virtual.db,这时virtual 文件可以删除,但是保留和可以方便记忆用户名和密码~

    4、修改pam验证模块

    #vim /etc/pam.d/vsftp 这时可以看到文件中已包含一些数据,这些数据为实用户验证模块,一定要保留,删除后就实用户就会登陆失败!!

    在文件开通添加

    auth sufficient pam_userdb.so db=/etc/vsftpd/virtual 
    account sufficient pam_userdb.so db=/etc/vsftpd/virtual 添加完之后应该是如下图所示:virtual是指步骤3中生成的db文件,但是这里不能加db后缀,会出问题(其中我机器上的用户db文件和文章略有不同virtual_list)

    图片中可以看到有两对注释掉的auth account ,据验证都有问题,细节尚未追究,后续补充,貌似require 不能验证通过实用户,后面一对说明auth 和account 对必须要放在原实体验证之前。

    5、修改配置文件chroot_list user_list配置文件

    #vi chroot_root

    添加 ftpvirtual   添加需用户对应的实用户,原因后续补充

    #vim userconfig 

    添加vtest1   若不添加,将报错530  premisson denied

      vtest2

    6、配置虚用户的控制目录,以及权限

    #mkdir -p /etc/vsftpd/userconfig/vtest1 

    #mkdir -p /etc/vsftpd/userconfig/vtest2 文件名一定和虚拟用户的名称完全一样

    #vim vtest1

    添加local_root=/data/virtual/vtest1    vtest1只对vtest1 目录有操作权限,下面各权限若不赋予,
    write_enable=yes                            该虚拟用户将不能上传和下载文件,问题也找了半天
    download_enable=yes
    anon_upload_enable=yes
    anon_mkdir_write_enable=yes
    anon_other_write_enable=yes
    anon_world_readable_only=no

    vtest2文件类似

    7、 修改虚拟用户操作目录权限

    虚拟目录权限全部赋给映射的实用户ftpvirtual 即可

    #chown -R ftpvirtual: /data/virtual

    8、验证登陆成功

  • 相关阅读:
    为什么重复值高的字段不能建索引(比如性别字段等)
    【转】微服务架构技术栈选型手册
    【转】使用索引为什么能提高查询速度?
    SpringBoot读取配置文件(从classpath/file读取yml/properties文件)
    集合总结--ArrayList、LinkedList、HashMap
    HashMap问答
    【转】http的keep-alive和tcp的keepalive区别
    【转】大数据分析中Redis怎么做到220万ops
    哪个中年IT男不是一边面对危机,一边咬牙硬抗【转】
    SVN clean失败解决方法【转】
  • 原文地址:https://www.cnblogs.com/hello-kelly/p/4693448.html
Copyright © 2020-2023  润新知