vsftp很早就弄过,现在再弄随便找了个文档。结果搞了一下午。
最后发现是vsftp的问题。现在把自己查问题的思路写一下。
另外几个要点:
配置文件最后不能留有空格,否则报错。
主配置文件的user_config_dir和虚拟用户的local_root 不要是子目录关系。
问题:vsftp无法登陆 显示密码错误
查了下面几点:
/etc/pam.d/vsftp.vu
auth required /lib64/security/pam_userdb.so db=/etc/ftp_user
account required /lib64/security/pam_userdb.so db=/etc/ftp_user
一直以为在pam文件中使用db的hash和没有用效果是一样的,如果发现db搞不定可以直接用没有db的。
更正一下,先看看下面
- Aug 20 20:48:46 tianjin-dac-161 vsftpd: pam_userdb(vsftpd.vu:auth): user_lookup: could not open database `/etc/vsftpd_login': No such file or directory
[root@tianjin-dac-161 user]# ls /etc/vsftpd_login
/etc/vsftpd_login
[root@tianjin-dac-161 user]# ls /etc/vsftpd_login
/etc/vsftpd_login
如果没有通过db_hash会报错,感觉会自动pam配置的文件名后加.db的文件作为数据库文件。
接着查 /var/log/messages /var/log/vsftpd.log /var/log/secure
其中secure这个文件是主要,这次就是没有注意导致查了很久。日志是这样的:
- Aug 16 16:51:02 tianjin-dac-15 vsftpd: PAM adding faulty module: /lib/security/pam_userdb.so
-
Aug 16 16:51:03 15 vsftpd: PAM unable to dlopen(/lib/security/pam_userdb.so)
-
Aug 16 16:51:03 15 vsftpd: PAM [error: /lib/security/pam_userdb.so: wrong ELF class: ELFCLASS32]
-
Aug 16 16:51:03 15 vsftpd: PAM adding faulty module: /lib/security/pam_userdb.so
-
Aug 16 16:54:52 15 vsftpd: PAM unable to dlopen(/lib/security/pam_userdb.so)
-
Aug 16 16:54:52 15 vsftpd: PAM [error: /lib/security/pam_userdb.so: wrong ELF class: ELFCLASS32]
一堆堆错误,后来修改了selinux重启后问题解决。
除了关掉 selinux,在.so文件的选择上如果是64位的一定要使用 lib64目录下的文件。
否则就会产生上面的错误。
留下这些文字给自己以警示。
阅读(3467) | 评论(0) | 转发(0) |