在CentOS系統中,設置SFTP用戶權限通常涉及以下幾個步驟:
創建用戶:
如果你還沒有創建用戶,可以使用useradd命令來創建一個新用戶。例如,創建一個名為sftpuser的用戶:
sudo useradd sftpuser
設置密碼:
使用passwd命令為新用戶設置密碼:
sudo passwd sftpuser
限制用戶的shell訪問:
為了安全起見,你應該限制SFTP用戶的shell訪問。你可以將用戶的默認shell更改為/sbin/nologin或/bin/false,這樣用戶就不能登錄到系統shell。
sudo usermod -s /sbin/nologin sftpuser
配置SSH和SFTP:
編輯SSH配置文件/etc/ssh/sshd_config,確保以下設置正確:
Subsystem sftp internal-sftp
這行配置指定了SFTP子系統使用內部SFTP服務器。
創建用戶目錄并設置權限:
創建一個目錄供SFTP用戶使用,并設置適當的權限。例如,創建一個名為sftp_upload的目錄:
sudo mkdir /home/sftpuser/sftp_upload
sudo chown root:root /home/sftpuser/sftp_upload
sudo chmod 755 /home/sftpuser/sftp_upload
限制用戶訪問特定目錄:
使用chroot來限制SFTP用戶只能訪問特定目錄。編輯/etc/ssh/sshd_config文件,添加或修改以下配置:
Match User sftpuser
ChrootDirectory /home/sftpuser/sftp_upload
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
這些設置將限制sftpuser用戶只能訪問/home/sftpuser/sftp_upload目錄,并且不能進行TCP和X11轉發。
重啟SSH服務:
保存并關閉sshd_config文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
通過以上步驟,你已經成功設置了SFTP用戶的權限,確保用戶只能通過SFTP訪問指定的目錄,并且不能登錄到系統的shell。