centos

centos sftp权限怎么设置

小樊
44
2025-06-14 09:41:32
栏目: 智能运维

在CentOS系统中,设置SFTP(SSH File Transfer Protocol)权限通常涉及以下几个方面:

  1. 用户和组权限

    • 确保SFTP用户属于一个特定的组,例如sftp_users
    • 使用usermod命令将用户添加到该组:
      sudo usermod -aG sftp_users username
      
  2. 配置SSH服务器

    • 编辑SSH配置文件/etc/ssh/sshd_config
    • 确保有以下配置项,并根据需要进行调整:
      Subsystem sftp internal-sftp
      Match Group sftp_users
          ChrootDirectory %h
          ForceCommand internal-sftp
          AllowTcpForwarding no
          X11Forwarding no
      
    • ChrootDirectory %h将用户的根目录限制在其主目录中。
    • ForceCommand internal-sftp强制使用SFTP而不是SSH shell。
    • AllowTcpForwarding noX11Forwarding no禁用了TCP和X11转发,以提高安全性。
  3. 设置目录权限

    • 确保用户的根目录及其子目录的权限设置正确。
    • 使用chmodchown命令设置权限:
      sudo chown root:root /home/username
      sudo chmod 755 /home/username
      sudo chown username:sftp_users /home/username/upload
      sudo chmod 755 /home/username/upload
      sudo chmod 700 /home/username/upload/*
      
    • 这里,/home/username是用户的根目录,/home/username/upload是用户可以上传文件的目录。
  4. SELinux配置(如果启用):

    • 如果系统启用了SELinux,可能需要调整相关策略以允许SFTP访问。
    • 使用setsebool命令启用必要的布尔值:
      sudo setsebool -P sftp_home_dir on
      
  5. 重启SSH服务

    • 保存并关闭sshd_config文件后,重启SSH服务以应用更改:
      sudo systemctl restart sshd
      

通过以上步骤,你可以设置CentOS系统上的SFTP权限,确保用户只能通过SFTP访问其主目录及其子目录,并且不能执行其他命令或访问其他用户的文件。

0
看了该问题的人还看了