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回车,重启就可以解决了。