在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命令。