zoukankan      html  css  js  c++  java
  • ftp上传文件权限问题

    一、问题描述

    ftp与普通用户:
      1、程序运行用户prouser,用户组也为prouser
      2、ftp服务用户ftpuser,用户目录/home/ftpuser
    prouser对ftp目录权限要求:
      1、prouser用户对/home/ftpuser有读写权限
      2、prouser用户对ftpuser上传的目录和文件有读写权限
      3、ftpuser用户不可登录

    二、解决思路

      普通用户和ftp服务用户公用一个用户组,达到如下效果:

      1、用户组队ftp用户目录拥有读写权限

      2、新上传的目录、文件,组用户拥有读写权限


    三、实施步骤:
    1、下载vsftpd对应rpm包
    2、安装
      root# rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm
    3、配置修改
      root# vim vim /etc/vsftpd/vsftpd.conf 修改ftp服务配置
      # 禁止匿名用户使用
      anonymous_enable=NO
      # 上传目录文件的权限为775
      local_umask=002
      # 将/etc/vsftpd/user_list作为白名单使用
      userlist_deny=NO
      root# vim /etc/vsftpd/user_list 将其他用户注释并添加ftpuser用户
      ftpuser
    4、新建ftp用户,用户名ftpuser,用户组为程序运行用户prouser的组名
      root# useradd -g prouser -s /bin/bash ftpuser
      root# passwd ftpuser 设置ftpuser用户密码为ftpuser
      root# chmod -R 775 /home/ftpuser
    5、修改ftp用户家目录文件权限
      root# chmod -R 775 /home/ftpuser 修改家目录权限
      root# su - ftpuser
      ftpuser# umask 0002 修改ftp用户新创建目录文件的默认权限为775
      ftpuser# mkdir record 创建上传目录
      ftpuser# mkdir backup 创建上传文件解析后移动到的目录
      ftpuser# exit
    6、测试程序用户对ftp家目录的权限
      root# su - prouser
      prouser# ls -al /home/ftpuser 必须成功查看
      prouser# mkdir /home/backup/test 必须成功创建目录
      prouser# rm -rf /home/backup/test 必须成功删除目录
      prouser# touch /home/backup/a 必须成功创建文件
      prouser# rm -rf /home/backup/a 必须成功删除文件
      prouser# exit
    7、访问ftp目录并上传测试文件夹
      ftp://ftpuser:ftpuser@ip/record
      root# ll /home/ftpuser/record 查看上传文件和文件夹的组用户权限满足rw
    8、回收ftpuser用户登录权限
      root# usermod -s /sbin/nologin ftpuser
      root# su - ftpuser 登录提示不可登录
        This account is currently not available.
    9、ftp服务是否依旧可正常访问
      ftp://ftpuser:ftpuser@ip/record

    附:

    1、userlist_enable=YES时,userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP

    2、当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;

    3、当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous

  • 相关阅读:
    技术必备:推荐一款接口自动化测试数据校验神器
    提高GUI自动化测试稳定性解决方案
    新特性,推荐一款超强接口管理神器 Apifox
    测试开发:从0到1学习如何测试API网关
    接口自动化测试,一键快速校验接口返回值全部字段
    测试工程师必学:测试人员如何深入了解项目
    Django+Vue+Docker搭建接口测试平台实战
    如何开展线上全链路压测思路分享
    刚转行1年测试新手:学习Python编程经验实战分享
    测开新手:从0到1,自动化测试接入Jenkins学习
  • 原文地址:https://www.cnblogs.com/elephanyu/p/9332750.html
Copyright © 2011-2022 走看看