温馨提示×

如何在Debian SFTP中配置访问控制列表

小樊
48
2025-08-13 03:16:08
栏目: 智能运维

在Debian系统中配置SFTP访问控制列表(ACL)可以通过使用sshd_config文件和acl包来实现。以下是详细的步骤:

1. 安装必要的软件包

首先,确保你已经安装了openssh-serveracl包。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install openssh-server acl

2. 配置SSH服务器

编辑/etc/ssh/sshd_config文件,确保以下配置项存在并正确设置:

# 允许SFTP子系统
Subsystem sftp /usr/lib/openssh/sftp-server

# 启用ACL支持
UsePAM yes

3. 创建用户和组

创建一个专门用于SFTP访问的用户和组。例如,创建一个名为sftpuser的用户和一个名为sftpgroup的组:

sudo addgroup sftpgroup
sudo adduser --ingroup sftpgroup sftpuser

4. 设置目录权限

确保SFTP用户的主目录及其子目录的权限设置正确。通常,主目录的权限应设置为755,并且所有者应为sftpuser

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

sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpgroup /home/sftpuser/uploads
sudo chmod 755 /home/sftpuser/uploads

5. 配置ACL

使用setfacl命令为特定目录设置ACL。例如,为/home/sftpuser/uploads目录设置读写权限:

sudo setfacl -m u:sftpuser:rwx /home/sftpuser/uploads
sudo setfacl -m g:sftpgroup:rwx /home/sftpuser/uploads

6. 配置SSHD以使用ACL

编辑/etc/ssh/sshd_config文件,添加或修改以下配置项以启用ACL支持:

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

7. 重启SSH服务

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

sudo systemctl restart sshd

8. 测试SFTP访问

使用SFTP客户端连接到服务器,验证访问控制是否按预期工作:

sftp sftpuser@your_server_ip

你应该能够看到sftpuser的主目录,并且只能访问uploads目录及其子目录。

通过以上步骤,你可以在Debian系统中成功配置SFTP访问控制列表。

0