在Ubuntu系統中,SFTP(SSH File Transfer Protocol)的權限設置主要涉及到以下幾個方面:
用戶和用戶組權限:
確保SFTP用戶屬于正確的用戶組,通常情況下,SFTP用戶應該屬于sftp-users
或類似的組。你可以使用以下命令將用戶添加到相應的組:
sudo usermod -a -G sftp-users username
然后,確保/etc/ssh/sshd_config
文件中的Subsystem sftp
配置如下:
Subsystem sftp /usr/lib/openssh/sftp-server
目錄權限: 為了確保SFTP用戶只能訪問其主目錄,你需要設置正確的目錄權限。以下是一些建議的權限設置:
/home/username
):755權限,所有者為root。/home/username
):755權限,所有者為SFTP用戶。/home/username/uploads
):775權限,所有者為SFTP用戶,用戶組為sftp-users。使用以下命令設置權限:
sudo chmod 755 /home/username
sudo chown root:root /home/username
sudo chmod 755 /home/username/uploads
sudo chown username:sftp-users /home/username/uploads
chroot環境: 如果你希望限制SFTP用戶只能訪問其主目錄,可以使用chroot環境。要實現這一點,請按照以下步驟操作:
編輯/etc/ssh/sshd_config
文件,找到或添加以下配置:
Match Group sftp-users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
確保chroot目錄(例如/home/username
)的權限設置正確:
sudo chmod 755 /home/username
sudo chown root:root /home/username
在chroot目錄中創建一個子目錄,用于存放用戶的文件,例如uploads
,并設置正確的權限:
sudo mkdir /home/username/uploads
sudo chown username:sftp-users /home/username/uploads
重啟SSH服務以應用更改:
sudo systemctl restart ssh
按照以上步驟設置權限后,你應該能夠成功配置Ubuntu系統上的SFTP權限。