在CentOS系統中,配置SFTP用戶權限通常涉及到幾個步驟,包括編輯SSH配置文件、設置用戶目錄權限以及可能需要調整SELinux策略。以下是一個基本的指南:
首先,你需要編輯SSH配置文件 /etc/ssh/sshd_config 來啟用SFTP并配置相關選項。
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
# 注釋掉或刪除以下行以禁用傳統的shell訪問
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 啟用SFTP子系統
Subsystem sftp internal-sftp
# 可選:限制SFTP用戶只能訪問他們的主目錄
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
創建一個專門用于SFTP用戶的組,并將需要使用SFTP的用戶添加到這個組中。
sudo groupadd sftpusers
添加一個新用戶并將其添加到 sftpusers 組中。同時,設置用戶的shell為 /sbin/nologin 或 /bin/false,以防止他們通過SSH登錄。
sudo useradd -m -G sftpusers -s /sbin/nologin username
sudo passwd username
確保用戶的家目錄及其子目錄的權限設置正確,以便SFTP可以正常工作。
sudo chown root:root /home/username
sudo chmod 755 /home/username
# 設置用戶主目錄的權限,使其只能由用戶自己讀寫
sudo chmod 700 /home/username
如果你的系統啟用了SELinux,可能需要調整相關策略以允許SFTP訪問用戶目錄。
sudo setsebool -P sftp_home_dir on
sudo chcon -Rv --reference=/home/username /home/username
最后,重啟SSH服務以應用更改。
sudo systemctl restart sshd
確保SFTP配置正確無誤,可以通過以下命令測試:
sftp username@your_server_ip
如果一切配置正確,你應該能夠通過SFTP連接到服務器,并且只能訪問用戶的家目錄及其子目錄。
通過以上步驟,你應該能夠在CentOS系統中成功配置SFTP用戶權限。