更改配置文件解决它
1、
userlist_deny=NO # 禁止在用户名的文件中的用户登录
userlist_enable=YES # 使用该功能
#记录允许本地登陆用户名的文件
userlist_file=/etc/vsftpd.user.list
vsftpd.user.list里面的用户不能登录(530报错)
当 userlist_enable=NO 时,可正常登录
2、
local_enable=YES
pam_service_name=vsftpd(改前) //在Ubuntu里可以将 vsftpd 改为FTP,这里可以一试
pam_service_name=ftp(改后)
3、
在 /etc/ftpusers 文件中的用户也不能登录(530报错)
把 /etc/ftpusers 文件中的用户注释掉
4、
往配置里加上一句
check_shell = NO
5、
chmod a-w /home/user去除用户主目录的写权限(把目录替换成你自己的目录名)
或者
你可以在vsftpd的配置文件中增加一项: allow_writeable_chroot=YES # 允许写入
6、(此方法未验证) chroot_local_user=YES chroot_list_enable=YES #(default follows) chroot_list_file=/etc/vsftpd/chroot_list 写入 /etc/vsftpd/chroot_list 文件的用户被限制 注释掉即可
刮刮乐
7、
修改 sudo nano /etc/pam.d/vsftpd
注释掉下面这行
# auth required pam_shells.so
或者
改为 auth required pam_nologin.so
想了解为什么要注释的,点这里
https://unix.stackexchange.com/questions/37539/vsftpd-fails-pam-authentication
以上全用过,不行。。。最后第8点搞定。。。
8、
我用的是自己的dns服务器,解析内网域名时用了别的dns服务器,
解析不了域名结果导致530登入错误,改回用IP地址登入,或更改dns服务器IP为我自己的dns服务器就行了
(大意了,这么简单搜索了一下午,心态崩了)
9、注意
如果只有匿名用户和虚拟用户可以登入,而本地的用户登入会530报错
去检查配置文件 /etc/pam.d/vsftpd 是否有写入错误(或冲突)
要是全试过还是不行,卸载重装吧0-0