温馨提示×

Ubuntu SFTP如何限制文件访问权限

小樊
54
2025-08-24 08:10:46
栏目: 智能运维

以下是在Ubuntu中限制SFTP文件访问权限的关键步骤:

  1. 创建专用用户和组

    • 创建SFTP用户组:sudo groupadd sftpusers
    • 添加用户并指定主目录(如/home/sftpuser):sudo useradd -m -g sftpusers -s /bin/false sftpuser
  2. 配置chroot环境

    • 编辑/etc/ssh/sshd_config,添加以下内容限制用户仅能访问其主目录:
      Match Group sftpusers  
      ChrootDirectory %h  
      ForceCommand internal-sftp  
      AllowTcpForwarding no  
      X11Forwarding no  
      
      • ChrootDirectory需为root所有且权限为755,用户不能直接写入该目录。
    • 在chroot目录下创建可访问子目录(如upload),并设置权限为755(用户组可读写):
      sudo mkdir /home/sftpuser/upload
      sudo chown sftpuser:sftpusers /home/sftpuser/upload
      sudo chmod 755 /home/sftpuser/upload
  3. 设置文件系统权限

    • 确保用户主目录由root拥有,防止用户越权修改:sudo chown root:root /home/sftpuser
    • 通过chmod限制目录访问权限,例如:
      • 主目录:755(用户可进入,但无写权限)。
      • 上传目录:755775(用户组可读写)。
  4. 重启服务并测试

    • 重启SSH服务生效配置:sudo systemctl restart ssh
    • 使用SFTP客户端连接测试,验证是否仅能访问指定目录。

安全增强建议

  • 禁用密码认证,启用公钥认证(PubkeyAuthentication yes)。
  • 定期监控日志(/var/log/auth.log)并更新系统补丁。

0