vsftpd 530 login incrrect 虚拟用户配置无法登陆有关问题处理

vsftpd 530 login incrrect 虚拟用户配置无法登陆问题处理

根据上一篇 《我见过最好的vsftpd配置教程》教程配置vsftpd时,在最后测试时出现530 login incrrect 提示,无法登陆。

查看日志 tail -n 20 /var/log/secure  有如下信息

Oct 21 14:19:40 www vsftpd: PAM unable to dlopen(/lib/security/pam_userdb.so)

Oct 21 14:19:40 www vsftpd: PAM [error: /lib/security/pam_userdb.so: wrong ELF class: ELFCLASS32]
Oct 21 14:19:40 www vsftpd: PAM adding faulty module: /lib/security/pam_userdb.so
Oct 21 14:19:40 www vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Oct 21 14:19:40 www vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=kanecruise rhost=60.55.8.102 
Oct 21 14:19:40 www vsftpd: pam_succeed_if(vsftpd:auth): error retrieving information about user kanecruise


很明显是 /lib/security/pam_userdb.so这个载入失败。

我检查本地机器 

pam.i386                                                                              0.99.6.2-6.el5_5.2                                                                    installed
pam.x86_64                                                                        0.99.6.2-6.el5_5.2                                                                    installed

两种都已经安装,到底是载入的哪个,哪个载入失败呢?

我机器是64位的,猜想应该是要载入pam.x86_64

cat /etc/pam.d/vsftpd
#%PAM-1.0
auth    sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers

session    optional     pam_keyinit.so    force revoke
auth       required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required pam_shells.so
auth       include system-auth
account    include system-auth
session    include system-auth
session    required     pam_loginuid.so

就是这里 /lib/security/pam_userdb.so 文件载入失败,这个文件存在问题。


[root@www kanecruise]# ls /lib
lib/   lib64/ 

根目录存在此两个问题,尝试把lib改为 lib64并确认 /lib/security/pam_userdb.so 此文件存在。

auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers

保存重启vsftpd服务。


重新测试,登陆成功了。