# centos7 创建 sftp 用户 并指定访问特定权限的特定目录

centos7 创建 sftp 用户 并指定访问特定目录

  1. 场景模拟:

    user1用户:
    对/home/sftp/user1/files 目录有读写权限,并只能通过sftp登录服务器,不可以ssh登录, 且只能在user1目录下操作

    user2用户:
    对/home/sftp/user2/files 目录有读写权限,并只能通过sftp登录服务器,不可以ssh登录,且只能在user2目录下操作

    user2-r用户:
    对/home/sftp/user2/files 目录只有只读(下载)权限,并只能通过sftp登录服务器,不可以ssh登录,且只能在user2目录下操做

  2. 创建sftpuser组,新增sftp登录用户user1、user2、user2-r,限制用户不可以ssh登录服务器

    # groupadd sftpuser 
    # user1dd -g sftpuser -s /bin/false user1 &&  echo "user1@123"|passwd user1 --stdin
    # user1dd -g sftpuser -s /bin/false user2 && echo "user2@123"|passwd user2 --stdin
    # user1dd -g sftpuser -s /bin/false user2-r  && echo "user2-r@123"|passwd user2-r --stdin
    
  3. 创建两个用户的登录目录,并设定目录权限

    mkdir -p /home/sftp/{user1,user2}/files
    # chown root:root /home/sftp/
    # chown root:sftpuser /home/sftp/{user1,user2}/
    # chown user1:sftpuser /home/sftp/user1/files
    # chown user2:sftpuser /home/sftp/user2/files
    # chmod 755 /home/sftp/{user1,user2}
    
  4. 修改配置文件sshd_config,指定不同用户登录不同目录

    # vi /etc/ssh/sshd_config
    
  5. 修改sshd_config文件,指定不同用户登录不同目录

    # vi /etc/ssh/sshd_config
    注释掉下面一行
    #Subsystem sftp /usr/libexec/openssh/sftp-server
    添加以下内容
    Subsystem    sftp    internal-sftp
    Match User user2-r
        ChrootDirectory /home/sftp/user2
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    Match Group sftpuser
        ChrootDirectory /home/sftp/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
  6. 目录权限设置要点: ChrootDirectory参数指定的目录,其权限及其所有的上级文件夹权限,属主必须是root,且只有属主能拥有写权限,即权限最大设置只能是755。上面之所以要创建files目录,是因为无论user1还是user2对自己的登录目录user1和user2都只有只读权限,而通过上面第3步的权限设置,我们可以让这两个用户对自己目录下的files拥有读写权限,而使得user2-r对files目录只有只读权限,从而达到不同用户拥有不同的权限设定需求。 上面配置中,user2-r的配置必须在sftpuser组配置之前,以后添加新的用户也是如此,否则会因为参数“/home/sftp/%u”优先匹配/home/sftp/user2-r目录,而实际中user2-r目录是不存在,造成登录失败。

  7. 重启sshd服务:

     #service sshd restart
     #systemctl restart sshd
    
上一篇:使用SSH+SFTP操作终端全解析,告别XShell


下一篇:sftp安装