温馨提示×

怎样设置Linux SFTP用户权限

小樊
53
2025-08-09 22:04:50
栏目: 智能运维

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

  1. 创建新用户(如果需要):

    sudo adduser username 
  2. 设置用户密码

    sudo passwd username 
  3. 限制用户的shell访问: 为了安全起见,你可以将用户的默认shell更改为/sbin/nologin/bin/false,这样用户就不能通过SSH登录,只能使用SFTP。

    sudo usermod -s /sbin/nologin username 
  4. 配置SSH和SFTP: 编辑/etc/ssh/sshd_config文件,确保以下配置存在并且没有被注释掉:

    Subsystem sftp internal-sftp 

    这告诉SSH服务器使用内置的SFTP子系统。

  5. 创建一个组来管理SFTP用户(可选): 创建一个专门用于SFTP用户的组,并将SFTP用户添加到这个组中。

    sudo groupadd sftpusers sudo usermod -aG sftpusers username 
  6. 设置用户的主目录权限: 确保用户的主目录权限设置正确,以防止用户访问其他用户的文件。

    sudo chown root:root /home/username sudo chmod 755 /home/username 
  7. 限制用户访问特定目录(可选): 如果你想限制SFTP用户只能访问特定的目录,可以使用chroot jail。首先,确保用户的主目录及其所有父目录的所有者和组都是root。

    sudo chown root:root /home/username sudo chmod 755 /home/username 

    然后,在sshd_config文件中添加或修改以下配置:

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

    这会将属于sftpusers组的用户限制在他们自己的主目录中。

  8. 重启SSH服务: 使配置生效,重启SSH服务。

    sudo systemctl restart sshd 

通过以上步骤,你可以设置Linux系统中的SFTP用户权限,确保用户只能通过SFTP访问文件,并且不能通过SSH登录。

0