centos

CentOS SFTP配置用户权限

小樊
46
2026-01-08 00:36:34
栏目: 智能运维

在CentOS系统中,配置SFTP用户权限通常涉及以下几个步骤:

  1. 安装OpenSSH服务器: 如果你还没有安装OpenSSH服务器,可以使用以下命令进行安装:

    sudo yum install openssh-server
    
  2. 启动并启用SSH服务: 确保SSH服务正在运行,并设置为开机自启:

    sudo systemctl start sshd
    sudo systemctl enable sshd
    
  3. 创建SFTP用户: 创建一个新的系统用户,这个用户将用于SFTP连接:

    sudo adduser sftpuser
    
  4. 配置SSHD配置文件: 编辑/etc/ssh/sshd_config文件,添加或修改以下内容以启用SFTP并限制用户的访问权限:

    sudo nano /etc/ssh/sshd_config
    

    在文件中找到或添加以下行:

    Subsystem sftp internal-sftp
    
    Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

    这段配置的意思是:

    • Subsystem sftp internal-sftp:使用内部SFTP子系统。
    • Match Group sftpusers:匹配属于sftpusers组的用户。
    • ChrootDirectory %h:将用户的根目录限制在其主目录。
    • ForceCommand internal-sftp:强制使用SFTP命令。
    • AllowTcpForwarding no:禁止TCP转发。
    • X11Forwarding no:禁止X11转发。
  5. 创建SFTP用户组并添加用户: 创建一个新的用户组sftpusers,并将SFTP用户添加到该组:

    sudo groupadd sftpusers
    sudo usermod -aG sftpusers sftpuser
    
  6. 设置用户主目录权限: 确保用户的主目录权限设置正确,以便用户可以访问:

    sudo chown root:root /home/sftpuser
    sudo chmod 755 /home/sftpuser
    
  7. 创建用户的SFTP目录: 在用户的主目录下创建一个用于SFTP的目录,并设置适当的权限:

    sudo mkdir /home/sftpuser/upload
    sudo chown sftpuser:sftpuser /home/sftpuser/upload
    sudo chmod 755 /home/sftpuser/upload
    
  8. 重启SSH服务: 使配置生效,重启SSH服务:

    sudo systemctl restart sshd
    

完成以上步骤后,你应该能够使用SFTP连接到服务器,并且用户将被限制在其主目录及其子目录中。例如,使用以下命令进行SFTP连接:

sftp sftpuser@your_server_ip

这样配置后,用户将只能访问其主目录及其子目录,无法访问其他用户的目录或系统文件。

0
看了该问题的人还看了