实验室CentOS服务器不知道被谁更新系统到6.5后,发现在本机上即使输入正确的密码也无法登陆,通过在google搜索,发现有一些人也碰见过同样的问题,但是他们是因为系统变为64位后,无法找到pam_limits.so的正确路径,但是我的主机不是这种问题,更新的后依然是i686架构,继续搜索,一步步查找问题,首先修改grub进入单用户模式下,打开sshd服务,从远程主机登陆,发现可以登陆,但就是本地不行,于是乎继续锁定问题到/etc/pam.d/login文件,cat /etc/pam.d/login文件,发现内容如下: #%PAM-1.0 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 并没有想象中的pam_limits.so文件,修改成如下: #%PAM-1.0 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_limits.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_limits.so session required pam_namespace.so session optional pam_keyinit.so force revoke session include system-auth -session optional pam_ck_connector.so 重启系统,进入多用户模式下,输入密码,发现可以登陆!! 思考: 1.为什么修改后就可以呢? pam_limits.so模块的主要功能是限制用户会话过程中对各种系统资源的使用情况,缺省情况下该模块的配置文件是/etc/security/limits.conf。既然sshd可以登陆,那么就使用它的pam模块来进行认证就OK。 2.pam_selinux.so SELinux相关的模块.为登陆用户提供安全的上下文。 进入另外一个centos6.3版本中发现和无法登陆的login文件是相同的,可能是在centos6.5中对/etc/pam.d/login做了一些相应的调整,而配置文件没有变所以就无法登陆(只是猜测) (责任编辑:IT) |