温馨提示×

如何在Linux中设置SFTP用户权限

小樊
108
2025-04-03 23:57:22
栏目: 智能运维

在Linux中设置SFTP用户权限,可以通过以下步骤实现:

1. 创建SFTP用户

首先,你需要创建一个专门用于SFTP的用户。这个用户不应该有SSH登录权限,只能通过SFTP进行文件传输。

sudo adduser sftpuser 

2. 设置用户密码

为新创建的用户设置一个密码。

sudo passwd sftpuser 

3. 配置SSHD配置文件

编辑SSH配置文件 /etc/ssh/sshd_config,添加或修改以下内容:

# 禁止SFTP用户通过SSH登录 Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /home/sftpuser AllowTcpForwarding no X11Forwarding no 

4. 创建chroot目录

确保chroot目录存在并且属于root用户。

sudo mkdir -p /home/sftpuser sudo chown root:root /home/sftpuser 

5. 设置目录权限

设置chroot目录的权限,确保SFTP用户只能访问自己的主目录。

sudo chmod 755 /home/sftpuser 

6. 创建上传目录

在chroot目录下创建一个上传目录,并设置适当的权限。

sudo mkdir /home/sftpuser/uploads sudo chown sftpuser:sftpuser /home/sftpuser/uploads 

7. 重启SSH服务

最后,重启SSH服务以应用更改。

sudo systemctl restart sshd 

验证设置

现在,你可以尝试使用SFTP客户端连接到服务器,并验证用户是否只能访问指定的目录。

sftp sftpuser@your_server_ip 

在SFTP会话中,你应该只能看到 /home/sftpuser/uploads 目录,并且无法访问其他目录。

通过以上步骤,你就可以在Linux系统中设置SFTP用户权限,确保用户只能通过SFTP进行文件传输,并且不能访问其他敏感目录。

0