CentOS FTP Server使用常見問題解答
/etc/ftpusers
文件中,也會被拒絕登錄;此外,用戶主目錄權限不足(如未設置讀寫權限)也會導致此錯誤。/etc/ftpusers
文件,確保目標用戶未被列入(該文件默認禁止部分系統用戶登錄);調整用戶主目錄權限,例如sudo chmod 755 /home/ftpuser
(ftpuser
為FTP用戶名),并確保目錄所有者為用戶自身(sudo chown ftpuser:ftpuser /home/ftpuser
)。sudo chmod 775 /home/ftpuser
);若啟用了SELinux,需開啟FTP訪問用戶目錄的策略:sudo setsebool -P ftp_home_dir 1
(允許訪問主目錄),若仍無法寫入,可臨時開啟完整FTP訪問(不推薦生產環境長期使用):sudo setsebool -P allow_ftpd_full_access 1
。/var/ftp
)未設置正確的寫權限。/etc/vsftpd/vsftpd.conf
),開啟匿名寫入權限:anon_upload_enable=YES
(允許上傳)、anon_mkdir_write_enable=YES
(允許創建目錄);設置匿名根目錄的寫權限:sudo chmod 777 /var/ftp
(注意:生產環境中建議限制為775
并指定所有者為root:root
)。sudo firewall-cmd --permanent --add-service=ftp
,然后重載防火墻:sudo firewall-cmd --reload
;若使用SELinux,臨時設置為寬松模式測試:sudo setenforce 0
,若能連接則永久修改SELinux策略(sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
);檢查vsftpd服務狀態:sudo systemctl status vsftpd
,若未啟動則啟動服務:sudo systemctl start vsftpd
,并設置開機自啟:sudo systemctl enable vsftpd
;使用netstat -antup | grep ftp
檢查端口是否被占用(正常應顯示vsftpd
進程監聽21端口)。pasv_enable=YES
,并設置端口范圍(如pasv_min_port=10000
、pasv_max_port=10100
);在防火墻中開放被動模式端口范圍:sudo firewall-cmd --permanent --add-port=10000-10100/tcp
,然后重載防火墻:sudo firewall-cmd --reload
。chroot_local_user=YES
配置將用戶鎖定在主目錄,但主目錄權限設置不當(如未設置所有者為用戶自身,或權限過嚴);allow_writeable_chroot
未開啟(若用戶需要寫入chroot目錄)。sudo chown ftpuser:ftpuser /home/ftpuser
),權限設置為755
(sudo chmod 755 /home/ftpuser
);若用戶需要寫入主目錄,在vsftpd配置文件中添加:allow_writeable_chroot=YES
,然后重啟vsftpd服務:sudo systemctl restart vsftpd
。sudo vsftpd /etc/vsftpd/vsftpd.conf
(若有錯誤會提示具體行號);檢查端口占用情況:sudo netstat -antup | grep 21
,若端口被占用,修改vsftpd配置文件中的listen_port
參數為其他端口(如2121
),并在防火墻中開放新端口;查看系統日志獲取詳細錯誤信息:sudo tail -f /var/log/messages
或sudo tail -f /var/log/secure
,根據日志提示解決問題。