在Ubuntu系統中,使用SFTP(SSH File Transfer Protocol)管理多個用戶可以通過以下步驟實現:
確保你的Ubuntu系統上已經安裝了OpenSSH服務器。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install openssh-server
為每個需要通過SFTP訪問的用戶創建一個系統用戶賬戶??梢允褂?adduser 命令來創建用戶:
sudo adduser username
按照提示設置用戶的密碼和其他信息。
創建一個專門用于SFTP用戶的組,并將所有SFTP用戶添加到該組中:
sudo groupadd sftpusers
將每個SFTP用戶添加到 sftpusers 組中:
sudo usermod -aG sftpusers username
編輯SSH配置文件 /etc/ssh/sshd_config,以限制用戶只能通過SFTP訪問,并進行其他必要的配置??梢允褂靡韵旅畲蜷_配置文件:
sudo nano /etc/ssh/sshd_config
在文件中添加或修改以下內容:
# 只允許SFTP訪問
Subsystem sftp internal-sftp
# 限制用戶只能使用SFTP
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
這里,%h 會被替換為用戶的主目錄路徑。
確保每個用戶的主目錄權限設置正確,以便SSH可以正確地進行chroot操作。通常,主目錄的權限應設置為755,并且所有者應為root:
sudo chown root:root /home/username
sudo chmod 755 /home/username
在用戶的主目錄下創建一個用戶可以寫入的目錄,例如 uploads:
sudo mkdir /home/username/uploads
sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads
保存并關閉 sshd_config 文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用剛剛創建的SFTP用戶名和密碼進行登錄,以測試配置是否正確:
sftp username@your_server_ip
通過以上步驟,你就可以在Ubuntu系統上實現多用戶SFTP管理。每個用戶將被限制在其主目錄中,并且只能通過SFTP進行文件傳輸。