在Debian系统中设置SFTP用户权限,可通过以下步骤操作:
安装SSH服务器
sudo apt update && sudo apt install openssh-server
创建SFTP用户并设置主目录权限
/etc/ssh/sshd_config
中#PermitRootLogin prohibit-password
):sudo adduser sftpuser
root
,权限设为755
(确保用户无法修改主目录结构):sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
配置SSH限制SFTP访问
编辑/etc/ssh/sshd_config
,添加以下内容(限制用户仅能通过SFTP访问主目录):
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match User
改为Match Group sftpusers
,并提前创建用户组:sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser
(可选)设置子目录权限
若需允许用户访问主目录下的特定子目录(如/home/sftpuser/upload
),可单独设置权限:
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpusers /home/sftpuser/upload
sudo chmod 755 /home/sftpuser/upload
重启SSH服务生效
sudo systemctl restart sshd
验证连接
使用SFTP客户端连接测试:
sftp sftpuser@your_server_ip
确认用户仅能访问配置的目录,无法跳转至其他路径。
安全提示:
/etc/ssh/sshd_config
中设置PasswordAuthentication no
并注释#PubkeyAuthentication yes
)。setfacl
命令)。