• 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、验证登陆成功

  • 相关阅读:
    AI常用环境安装
    ubantu打开摄像头失败
    python 从ubantu环境迁移到windows环境
    mystar01 nodejs MVC 公共CSS,JS设置
    Golang数据类型之结构体-上篇
    Golang基准测试
    浅谈Prometheus的数据存储
    Golang单元测试
    Jenkins连接k8s的多种姿势
    Golang数据类型之指针
  • 原文地址:https://www.cnblogs.com/hello-kelly/p/4693448.html
Copyright © 2020-2023  润新知