在Ubuntu上實現SFTP多用戶共享,可按以下步驟操作:
安裝OpenSSH服務器
sudo apt update && sudo apt install openssh-server
創建SFTP用戶組及用戶
sudo groupadd sftp_users
sftpuser1
為例):sudo useradd -m -G sftp_users -s /bin/false sftpuser1
sudo passwd sftpuser1
配置SSH限制SFTP訪問
編輯/etc/ssh/sshd_config
,在文件末尾添加:
Match Group sftp_users
ChrootDirectory /home/%u # 限制用戶根目錄為用戶家目錄
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
/sftp_root
),可將ChrootDirectory
設為共享路徑,并確保用戶無寫權限。設置目錄權限
sudo mkdir -p /home/sftpuser1/upload # 創建可上傳目錄(可選)
sudo chown root:root /home/sftpuser1 # 根目錄屬主為root
sudo chmod 755 /home/sftpuser1
sudo chown sftpuser1:sftp_users /home/sftpuser1/upload # 上傳目錄屬主為用戶,組為sftp_users
sudo chmod 775 /home/sftpuser1/upload # 允許組內用戶讀寫
重啟SSH服務生效
sudo systemctl restart ssh
測試連接
使用SFTP客戶端(如命令行或FileZilla)連接:
sftp sftpuser1@your_server_ip
驗證是否限制在指定目錄且可正常傳輸文件。
說明:
Match Group
可批量管理多用戶,共享同一配置。ChrootDirectory
需為root所有且權限為755,確保用戶無法越權訪問。AllowUsers
或DenyUsers
進一步限制特定用戶訪問(可選)。