Ubuntu下vsftpd權限配置指南
首先更新系統軟件包并安裝vsftpd:
sudo apt update
sudo apt install vsftpd
編輯vsftpd主配置文件/etc/vsftpd.conf
(使用nano或vim):
sudo nano /etc/vsftpd.conf
關鍵配置項說明:
local_enable=YES
:允許本地系統用戶登錄FTP。write_enable=YES
:允許用戶上傳、刪除、修改文件(核心寫入權限)。chroot_local_user=YES
:將用戶限制在自己的主目錄(增強安全性,防止訪問系統其他目錄)。allow_writeable_chroot=YES
:當chroot_local_user=YES
時,必須開啟此選項,否則用戶無法在chroot環境中寫入文件(如上傳文件會報錯)。local_umask=022
:設置文件創建掩碼,新文件的默認權限為644
(所有者可讀寫,其他用戶只讀),目錄為755
(所有者可讀寫執行,其他用戶可讀執行)。userlist_enable=YES
+ userlist_file=/etc/vsftpd.user_list
+ userlist_deny=NO
:僅允許/etc/vsftpd.user_list
中列出的用戶登錄(白名單機制)。sudo adduser ftpuser
按提示設置密碼(建議使用強密碼),其他信息可跳過。
為提升安全性,禁止用戶通過SSH登錄系統:
sudo usermod -s /sbin/nologin ftpuser
確保用戶主目錄歸用戶所有,且權限正確:
sudo chown -R ftpuser:ftpuser /home/ftpuser # 歸屬權設為用戶及用戶組
sudo chmod -R 755 /home/ftpuser # 目錄權限設為755(所有者可讀寫執行,其他用戶可讀執行)
若需更嚴格的文件權限(如防止其他用戶讀取文件),可將目錄權限設為750
:
sudo chmod -R 750 /home/ftpuser
若系統啟用了UFW防火墻,需開放FTP端口(默認21)及被動模式端口范圍(如30000-31000):
sudo ufw allow 21/tcp # FTP控制端口
sudo ufw allow 20/tcp # FTP數據端口(主動模式)
sudo ufw allow 30000:31000/tcp # 被動模式端口范圍(根據實際情況調整)
sudo ufw reload # 重新加載防火墻規則
sudo systemctl restart vsftpd
若需驗證配置文件語法是否正確,可使用:
sudo vsftpd /etc/vsftpd.conf
無報錯則表示配置正確。
使用FTP客戶端(如FileZilla)或命令行工具連接服務器:
ftp your_server_ip
輸入用戶名(如ftpuser
)和密碼,驗證是否能正常登錄、上傳/下載文件。
/etc/vsftpd.conf
中添加:pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
并確保防火墻開放了對應的端口范圍。xferlog_enable=YES
),日志文件默認位于/var/log/vsftpd.log
。ssl_enable=YES
),配置證書以保護數據傳輸安全。