在Linux系統中,設置SFTP用戶權限通常涉及以下幾個步驟:
創建新用戶(如果需要):
sudo adduser username
設置用戶密碼:
sudo passwd username
限制用戶的shell訪問:
為了安全起見,你可以將用戶的默認shell更改為/sbin/nologin或/bin/false,這樣用戶就不能通過SSH登錄,只能使用SFTP。
sudo usermod -s /sbin/nologin username
配置SSH和SFTP:
編輯/etc/ssh/sshd_config文件,確保以下配置存在并且沒有被注釋掉:
Subsystem sftp internal-sftp
這告訴SSH服務器使用內置的SFTP子系統。
創建一個組來管理SFTP用戶(可選): 創建一個專門用于SFTP用戶的組,并將SFTP用戶添加到這個組中。
sudo groupadd sftpusers
sudo usermod -aG sftpusers username
設置用戶的主目錄權限: 確保用戶的主目錄權限設置正確,以防止用戶訪問其他用戶的文件。
sudo chown root:root /home/username
sudo chmod 755 /home/username
限制用戶訪問特定目錄(可選):
如果你想限制SFTP用戶只能訪問特定的目錄,可以使用chroot jail。首先,確保用戶的主目錄及其所有父目錄的所有者和組都是root。
sudo chown root:root /home/username
sudo chmod 755 /home/username
然后,在sshd_config文件中添加或修改以下配置:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
這會將屬于sftpusers組的用戶限制在他們自己的主目錄中。
重啟SSH服務: 使配置生效,重啟SSH服務。
sudo systemctl restart sshd
通過以上步驟,你可以設置Linux系統中的SFTP用戶權限,確保用戶只能通過SFTP訪問文件,并且不能通過SSH登錄。