在Debian系統中配置SFTP訪問控制列表(ACL)可以通過使用sshd_config
文件和acl
包來實現。以下是詳細的步驟:
首先,確保你已經安裝了openssh-server
和acl
包。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install openssh-server acl
編輯/etc/ssh/sshd_config
文件,確保以下配置項存在并正確設置:
# 允許SFTP子系統
Subsystem sftp /usr/lib/openssh/sftp-server
# 啟用ACL支持
UsePAM yes
創建一個專門用于SFTP訪問的用戶和組。例如,創建一個名為sftpuser
的用戶和一個名為sftpgroup
的組:
sudo addgroup sftpgroup
sudo adduser --ingroup sftpgroup sftpuser
確保SFTP用戶的主目錄及其子目錄的權限設置正確。通常,主目錄的權限應設置為755
,并且所有者應為sftpuser
:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpgroup /home/sftpuser/uploads
sudo chmod 755 /home/sftpuser/uploads
使用setfacl
命令為特定目錄設置ACL。例如,為/home/sftpuser/uploads
目錄設置讀寫權限:
sudo setfacl -m u:sftpuser:rwx /home/sftpuser/uploads
sudo setfacl -m g:sftpgroup:rwx /home/sftpuser/uploads
編輯/etc/ssh/sshd_config
文件,添加或修改以下配置項以啟用ACL支持:
Match Group sftpgroup
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
保存并關閉sshd_config
文件后,重啟SSH服務以應用更改:
sudo systemctl restart sshd
使用SFTP客戶端連接到服務器,驗證訪問控制是否按預期工作:
sftp sftpuser@your_server_ip
你應該能夠看到sftpuser
的主目錄,并且只能訪問uploads
目錄及其子目錄。
通過以上步驟,你可以在Debian系統中成功配置SFTP訪問控制列表。