linux

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

小樊
78
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
看了该问题的人还看了