SFTP權限設置主要涉及用戶、目錄及SSH配置,核心步驟如下:
創建專用用戶和組
sudo groupadd sftpusers # 創建SFTP用戶組
sudo adduser sftpuser -M -s /sbin/nologin # 創建用戶,禁止SSH登錄
sudo usermod -aG sftpusers sftpuser # 將用戶加入組
配置SSH限制權限
編輯 /etc/ssh/sshd_config
,添加以下內容:
Subsystem sftp internal-sftp # 啟用SFTP子系統
Match Group sftpusers # 針對SFTP用戶組配置
ChrootDirectory %h # 限制用戶根目錄為用戶主目錄
ForceCommand internal-sftp # 強制僅能使用SFTP
AllowTcpForwarding no
X11Forwarding no
ChrootDirectory
需確保主目錄權限為 root:root
且權限為 755
,避免用戶越權。設置目錄和文件權限
root
,權限 755
(用戶不可修改主目錄本身)。sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
755
(或 770
允許組內寫)。sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpusers /home/sftpuser/uploads
sudo chmod 755 /home/sftpuser/uploads # 或 770
重啟SSH服務生效
sudo systemctl restart sshd
可選:啟用更細粒度權限控制
sudo setfacl -R -m u:sftpuser:rwx /home/sftpuser/specific_dir
Match User
針對單個用戶單獨配置權限。安全注意事項:
/var/log/auth.log
監控異常登錄。完成配置后,可通過 sftp sftpuser@服務器IP
測試連接及權限是否生效。