SFTP(SSH File Transfer Protocol)是一種通過SSH加密實現文件傳輸的協議。要實現多用戶管理,您需要在服務器端進行配置。以下是實現多用戶管理的一些建議:
創建專用用戶組: 為了更好地管理SFTP用戶,您可以創建一個專用的用戶組,例如sftp_users。使用以下命令創建用戶組:
sudo groupadd sftp_users
添加用戶并分配到專用用戶組: 對于每個SFTP用戶,創建一個系統用戶并將其添加到sftp_users用戶組。使用以下命令創建用戶并將其添加到用戶組:
sudo adduser username
sudo usermod -aG sftp_users username
重復此步驟以添加其他SFTP用戶。
配置SSH和SFTP: 編輯SSH配置文件(通常位于/etc/ssh/sshd_config),以便為SFTP用戶提供專用shell訪問。在文件末尾添加以下內容:
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
這將限制sftp_users組的成員只能使用SFTP,并將其根目錄設置為用戶的家目錄。同時,禁止TCP和X11轉發。
設置用戶家目錄權限: 為了確保用戶無法訪問其他用戶的文件,您需要設置家目錄的權限。對于每個SFTP用戶,執行以下命令:
sudo chown root:root /home/username
sudo chmod 755 /home/username
這將確保只有root用戶可以讀取、寫入和執行家目錄中的文件,而其他用戶只能讀取和執行。
創建用戶可寫的目錄: 在用戶的家目錄中創建一個子目錄,允許用戶上傳和下載文件:
sudo mkdir /home/username/uploads
sudo chown username:sftp_users /home/username/uploads
sudo chmod 775 /home/username/uploads
這將允許用戶在其uploads目錄中自由地上傳和下載文件,同時限制對其他目錄的訪問。
重啟SSH服務: 保存更改后,重啟SSH服務以使更改生效:
sudo systemctl restart ssh
現在,您已經成功實現了SFTP多用戶管理。用戶可以使用其系統用戶名和密碼通過SFTP連接到服務器,并根據上述權限設置訪問文件。