电脑技术学习

CentOS自动更新到6.5后root无法登陆问题解决

dn001

  实验室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做了一些相应的调整,而配置文件没有变所以就无法登陆(只是猜测)

标签: