前一段時間,因工作需要在物理機上裝了一個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已經變了,只能登錄本機,所以,必須要解決這個問題。但是,我之前用的時候,感覺沒有動過這塊兒,不知道為啥突然就不能用了。好在問題解決了。真是完美!!
