FileZilla連接Ubuntu的權限設置指南
為避免使用root用戶帶來的安全風險,建議創建專用SFTP用戶。執行以下命令:
sudo adduser sftpuser
按提示設置強密碼及用戶信息(如全名、郵箱等)。
創建sftp_users組并將用戶添加至該組,便于統一管理權限:
sudo groupadd sftp_users
sudo usermod -aG sftp_users sftpuser
編輯SSH配置文件/etc/ssh/sshd_config,在文件末尾添加以下內容,限制sftp_users組的用戶只能使用SFTP并鎖定其訪問目錄:
Match Group sftp_users
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
說明:
ChrootDirectory %h:將用戶限制在其家目錄(如/home/sftpuser),防止訪問系統其他部分;ForceCommand internal-sftp:強制使用SFTP協議,禁用SSH shell訪問。sudo chown root:root /home/sftpusersudo chmod 755 /home/sftpuseruploads)并設置正確權限:sudo mkdir /home/sftpuser/uploadssudo chown sftpuser:sftp_users /home/sftpuser/uploadssudo chmod 755 /home/sftpuser/uploadssftpuser),組為sftp_users,權限755允許用戶讀寫,組用戶僅讀。執行以下命令重啟SSH服務,使上述配置生效:
sudo systemctl restart sshd
若需使用FTP協議(默認端口21),需安裝并配置vsftpd服務:
sudo apt update && sudo apt install vsftpd
編輯/etc/vsftpd.conf文件,確保以下配置項開啟:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
說明:
local_enable=YES:允許本地用戶登錄;write_enable=YES:允許用戶上傳/修改文件;chroot_local_user=YES:將用戶限制在家目錄(類似SFTP的Chroot功能);allow_writeable_chroot=YES:允許chroot目錄可寫(避免權限沖突)。sudo systemctl restart vsftpd
sftpuser)及其密碼;ufw),需允許對應端口(SFTP:22;FTP:21)的流量:sudo ufw allow 22/tcp 或 sudo ufw allow 21/tcp。