centos6.8(虚拟机VNC)输入正确用户名和密码仍跳回登录界面

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


虚拟机CentOS服务器不知道被谁更新系统到6.8后,发现在本机上即使输入正确的密码也无法登陆,发现有一些人也碰见过同样的问题,但是他们是因为系统变为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.8中对/etc/pam.d/login做了一些相应的调整,而配置文件没有变所以就无法登陆(只是猜测)

2)今天在虚拟机ubuntu上装交叉编译工具,由于无法生成uboot,就按照网上资料在/etc/profile设置了环境变量,然后用了几次之后再登录时发现即使输入正确的用户名和密码,也立刻跳到登录界面,无法进入系统。 解决方法:
网上查到,说可能是环境变量导致的,所以只能先通过ctrl+alt+F1进入命令行,输入具有超级权限的用户名和密码,进入命令行模式,然后使用vi去查看我以前设置环境变量的文件,/etc/profile,发现由于系统环境已经出错,命令行是乱码:
发现乱码,使用时加上完整路径就好了: /usr/bin/sudo /usr/bin/vi /etc/profile,之后按下dd删除错误的行,然后按shift输入:号,然后输入wq回车,重启就可以解决了。

每一个你不满意的当下,都有一个你不曾努力的曾经!
原文地址:https://www.cnblogs.com/shiqiangqiang/p/8867075.html