在Linux中設置SFTP用戶權限,可以通過以下步驟實現:
首先,你需要創建一個專門用于SFTP的用戶。這個用戶不應該有SSH登錄權限,只能通過SFTP進行文件傳輸。
sudo adduser sftpuser
為新創建的用戶設置一個密碼。
sudo passwd sftpuser
編輯SSH配置文件 /etc/ssh/sshd_config
,添加或修改以下內容:
# 禁止SFTP用戶通過SSH登錄
Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /home/sftpuser
AllowTcpForwarding no
X11Forwarding no
確保chroot目錄存在并且屬于root用戶。
sudo mkdir -p /home/sftpuser
sudo chown root:root /home/sftpuser
設置chroot目錄的權限,確保SFTP用戶只能訪問自己的主目錄。
sudo chmod 755 /home/sftpuser
在chroot目錄下創建一個上傳目錄,并設置適當的權限。
sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
最后,重啟SSH服務以應用更改。
sudo systemctl restart sshd
現在,你可以嘗試使用SFTP客戶端連接到服務器,并驗證用戶是否只能訪問指定的目錄。
sftp sftpuser@your_server_ip
在SFTP會話中,你應該只能看到 /home/sftpuser/uploads
目錄,并且無法訪問其他目錄。
通過以上步驟,你就可以在Linux系統中設置SFTP用戶權限,確保用戶只能通過SFTP進行文件傳輸,并且不能訪問其他敏感目錄。