在Ubuntu上實現SFTP多用戶訪問,可以通過配置SSH和SFTP來實現。以下是一個基本的步驟指南:
首先,確保你的系統已經安裝了OpenSSH服務器。
sudo apt update
sudo apt install openssh-server
為每個需要訪問SFTP的用戶創建一個系統用戶。
sudo adduser user1
sudo adduser user2
編輯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
保存并退出編輯器。
創建一個專門用于SFTP用戶的組,并將所有SFTP用戶添加到這個組中。
sudo groupadd sftpusers
sudo usermod -aG sftpusers user1
sudo usermod -aG sftpusers user2
確保每個用戶的家目錄權限設置正確,以便SSH可以訪問。
sudo chown root:root /home/user1
sudo chmod 755 /home/user1
sudo chown root:root /home/user2
sudo chmod 755 /home/user2
為每個用戶創建一個SFTP目錄,并設置適當的權限。
sudo mkdir /home/user1/uploads
sudo chown user1:sftpusers /home/user1/uploads
sudo chmod 755 /home/user1/uploads
sudo mkdir /home/user2/uploads
sudo chown user2:sftpusers /home/user2/uploads
sudo chmod 755 /home/user2/uploads
最后,重啟SSH服務以應用更改。
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,測試是否可以正常訪問。
sftp user1@your_server_ip
你應該能夠看到SFTP提示符,并且可以導航到 /home/user1/uploads
目錄。
通過以上步驟,你可以在Ubuntu上實現SFTP多用戶訪問。每個用戶將被限制在其自己的主目錄中,并且只能訪問指定的上傳目錄。