前一段时间,因工作需要在物理机上装了一个Centos6.5,但是,用了一段时间,发现再登录时,无论如何也登不进去了,并且也不提示用户名或者密码错误。我一度以为是在profile以及.bashrc或者.bash_profile里设置了logout命令,于是乎进入单用户模式,各种查看,也没有发现logout的命令。于是,盯着屏幕瞅了一会儿,发现输入正确的用户名和密码以后,会闪一下,但是,特别快,不多瞅几次,无法识别。经过一番细瞅,发现是:Module is unkown,太好了,找解决问题的方法,有提示信息就解决了一半了。
于是,找度娘:
热心网友提供的解决问题的方法是这样的:
1、进入单用户模式
2、查看/var/log/secure文件,日志如下:
Mar 14 11:05:06 testOpenfire login: PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: cannot open shared object file: No such file or directory
Mar 14 11:05:06 testOpenfire login: PAM adding faulty module: /lib/security/pam_limits.so
Mar 14 11:05:10 testOpenfire login: pam_limits(login:session): unknown limit type 'herd'
Mar 14 11:05:10 testOpenfire login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Mar 14 11:05:10 testOpenfire login: Module is unknown
Mar 14 11:05:21 testOpenfire login: PAM unable to dlopen(/lib/security/pam_limits.so): /lib/security/pam_limits.so: cannot open shared object file: No such file or directory
意思是PAM unable to dlopen /lib/security/pam_limits.so这个文件,于是乎去/lib/security/下查看下有没有pam_limits.so这个文件,果然没有。
3、在/etc/pam.d/login里,里面的配置信息如下:
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include system-auth
-session optional pam_ck_connector.so
session required /lib/security/pam_limits.so
~
~
经网友指点,将最后一行注释掉或者是改为(搜了下,64位系统在lib64目录下):/lib64/security/pam_limits.so,保存后,重启系统。
4、用原来的用户名和密码登录,完美登录!!
据说,用SSH登录是没有问题的,但是,我的机器IP已经变了,只能登录本机,所以,必须要解决这个问题。但是,我之前用的时候,感觉没有动过这块儿,不知道为啥突然就不能用了。好在问题解决了。真是完美!!