vsftpd是linux下常用的ftp服務軟件,配置起來其實不復雜,只是網上很多文章,配置后都無法成功。我使用它是用於局域網內部分享文件的,所以使用匿名的方式。
ftp本身密碼是明文傳輸的,如果需要安全,也不建議通過密碼認證的方式,而建議直接使用sftp,通過winscp等工具訪問服務器。
vsftp配置失敗往往是由於權限問題,這里我簡單介紹一下注意的點。
vsftpd在Linux中默認使用的用戶是ftp,訪問的根目錄為/var/ftp,該目錄默認所有者是root。
配置的最佳實踐是將var/ftp/pub目錄所有者改為ftp,文件操作僅在pub目錄中進行。
我在配置完成后,下載文件時遇到了ftp 550 Failed to open file 問題,仔細查看文件權限發現,新增文件權限為600,此時會出現這個錯誤。在配置文件中添加anon_umask=022 配置,就可解決。
(配置前注意禁用selinux)
詳細配置方法如下,配置文件的詳細說明可通過 man vsftpd.conf 查看
yum install vsftpd -y
chown ftp:ftp -R /var/ftp/pub
/etc/vsftpd/vsftpd.conf
anonmous_enalbe=YES
#local_enable=YES
write_enable=YES
#local_umask=022
anon_umask=022 #設置新增文件權限umask
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES #允許修改或刪除文件
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --reload
