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

原文地址:https://www.cnblogs.com/elephanyu/p/9332750.html