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