在Debian系统中,SFTP服务器通常是通过OpenSSH提供的
使用文本编辑器打开/etc/ssh/sshd_config文件。例如,你可以使用nano编辑器:
sudo nano /etc/ssh/sshd_config
在sshd_config文件中,找到或添加以下行:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
这里,我们创建了一个名为sftpusers的新组,并将所有SFTP用户添加到此组。我们还限制了这些用户的chroot环境,禁止TCP和X11转发。
创建一个名为sftpusers的新组,并将需要限制SFTP命令的用户添加到此组。例如,如果你想将用户username添加到此组,请执行以下命令:
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
为了使更改生效,需要将用户的默认shell更改为/bin/false或/usr/sbin/nologin。这将阻止用户通过SSH登录,但仍然允许他们使用SFTP。要将用户username的默认shell更改为/bin/false,请执行以下命令:
sudo usermod -s /bin/false username
保存对sshd_config文件的更改,并重启SSH服务以使更改生效:
sudo systemctl restart ssh
现在,SFTP用户将受到限制,只能使用允许的命令。如果需要允许特定命令,可以考虑使用command=选项在sshd_config文件中为特定用户或组设置允许的命令。例如:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp,ls,cat
这将允许sftpusers组的用户使用ls和cat命令。