温馨提示×

如何在CentOS上设置SFTP用户权限

小樊
44
2025-03-05 13:08:40
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS上设置SFTP用户权限,可以按照以下步骤进行:

1. 创建新用户

首先,使用useradd命令创建一个新用户。例如,创建一个名为sftpuser的用户:

sudo useradd sftpuser

2. 设置用户密码

使用passwd命令为新用户设置密码:

sudo passwd sftpuser

按照提示输入并确认密码。

3. 配置SSH和SFTP

编辑SSH配置文件/etc/ssh/sshd_config,以允许SFTP访问:

sudo nano /etc/ssh/sshd_config

找到并修改以下行:

Subsystem sftp /usr/libexec/openssh/sftp-server

确保这一行没有被注释掉(即前面没有#)。

4. 限制SFTP用户的根目录

为了安全起见,通常希望限制SFTP用户只能访问特定的目录。可以使用ChrootDirectory指令来实现这一点。

首先,确保目标目录存在并且属于root用户:

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

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

Match User sftpuser
    ChrootDirectory /home/sftpuser/uploads
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

5. 重启SSH服务

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

sudo systemctl restart sshd

6. 测试SFTP连接

使用SFTP客户端连接到服务器,验证配置是否正确:

sftp sftpuser@your_server_ip

如果一切配置正确,你应该能够成功登录并访问/home/sftpuser/uploads目录。

7. 可选:使用PAM进行更细粒度的控制

如果你需要更细粒度的控制,可以使用PAM(Pluggable Authentication Modules)。编辑/etc/pam.d/sshd文件,添加以下行:

auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sftpusers onerr=succeed

然后创建/etc/ssh/sftpusers文件,并列出允许使用SFTP的用户:

sudo nano /etc/ssh/sftpusers

在文件中添加用户名:

sftpuser

保存并关闭文件。

通过以上步骤,你应该能够在CentOS上成功设置SFTP用户权限,并确保用户只能访问指定的目录。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:CentOS SFTP 用户权限怎么设置

0