vsftpd 以前在写Wordpress的时候,因为某个插件需要ftp支持, 就配置一个, 今天重配一个,发现了很多问题,这里总结一下
核心问题1:
搭建完成后,在配置文件里启用了log日志, 想通过日志进行排错,但一开始要么没有日志, 要么有日志后没有任何有用的报错信息,后来命名用Flashfxp客户端来做测试,这个客户端每次链接失败, 都会有报错信息,可以跟据报错信息来搜索怎么解决。
核心问题2:
同样的一个报错信息,会对应多个错误点, 比如你看到报错信息A,可能是配置B导致的问题, 也可能是配置C 导致的问题。即 配置 B C D , 错了任意一个点, 但输出的报错信息是一致的。
核心问题3:
搜索vsftpd 配置, 有太多的文章, 太多的配置文件解释, 但几乎没有一个是拿 来即用的,命令行相比web最大的优势就是复制粘贴然后即拿即用,而网上的这些配置文件你复制拿 来用, 全是不行的。
核心问题4:
需求, ftp可实现3个需求, 1: 匿名用户访问问题, 不考虑,太不安全,无意义。2: 本地系统用户访问,较简单,较安全。 3: 虚拟用户访问, 较复杂,更安全。
网上说了一堆,,本次只实现一个需求,就是在系统中新建一个用户, 然后就能做ftp用户使用。
本次做完, 备份了所有配置文件,配置文件每行加了注释,后续应该可以做到即拿即用。
核心问题5:
配置文件结尾一定不能有空格, 否则会报错。systemctl restart vsftpd.service用来 重启服务, 如是服务无法启动, 使用 systemctl status vsftpd.service , 这里会明确提示配置文件里哪行出错。
1: 新建用户
useradd -d /opt/www/fw_conf -g ftp -s /sbin/nologin fwbk_user
passwd fwbk_user
2: groupadd ftpsecure
adduser -g ftpsecure -s /sbin/nologin ftpsecure
3:vim /etc/pam.d/vsftpd
#auth required pam_shells.so
4: setenforce 0
5:
ftp的目录:
chown fwbk_user fw_conf
chmod -R 777 fw_conf
配置文件:
more chroot_list
fwbk_user
systemctl restart vsftpd.service
配置文件里关于目录可能要做修改。
错误排障:
500 OOPS: failed to open xferlog log file:/tmp/xferlog
500 OOPS: failed to open xferlog log file:/var/log/vsftpd.log
删除对应文件
500 OOPS: cannot locate user entry:ftpsecure
解决:
groupadd ftpsecure
adduser -g ftpsecure -s /sbin/nologin ftpsecure
530 Login incorrect.
配置文件中修改:
userlist_enable=YES
userlist_deny=NO
vim /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
问题:500 OOPS: could not read chroot() list file:/etc/vsftpd.chroot_list
解决:
1: /etc/vsftpd/chroot_list 加上要能访问的用户名。 (非必须)
2: 看配置文件里 chroot_list的路径有没有写错。