自从RHEL6安装上,为了测试,把X window 也安装上了,第一次正常登陆后,大概看了一下,就把系统设置成3的字符模式了。就在昨天,我想本地登陆RHEL6系统,输入用户名和密码后,就又跳回到输入用户名和密码,一直登陆不了系统。此时,系统的启动级别是3。我用SSH工具远程连接,发现正常登陆。把运行级别调整到5后,在本地也能正常登陆系统,很奇怪的故障。message 显示的错误日志是 init: tty (/dev/tty1) main process ended, respawning在网上查找相关的问题解决方案,红帽的官方说是BUG,没有找到解决的方法,也就没有仔细研究此BUG,但我觉得肯定是哪里出了问题,只是自己还没有找到而已。

解决步骤

1、增加自己的debug日志文件

因为message显示是info级别以上的日志,为了想看更多的日志信息,所以我就自己新增加了日志级别
[root@yufei ~]# vim /etc/rsyslog.conf
在里面加入一行
*.debug                /var/log/debug
这样,就把系统所有的debug级别以上的日志写入 /var/log/debug 文件中了。然后重新启动日志服务
[root@yufei ~]# service rsyslog restart

2、监控debug日志信息

再次进行3级别的本地登陆,监控debug日志信息如下
[root@yufei ~]# tail -f /var/log/debug
May 22 14:24:30 yufei login: PAM unable to dlopen(/lib/security/pam_tally.so): /lib/security/pam_tally.so: cannot open shared object file: No such file or directory
May 22 14:24:30 yufei login: PAM adding faulty module: /lib/security/pam_tally.so
May 22 14:24:30 yufei login: PAM unable to dlopen(/lib/security/$ISA/pam_tally.so): /lib/security/../../lib/security/pam_tally.so: cannot open shared object file: No such file or directory
May 22 14:24:30 yufei login: PAM adding faulty module: /lib/security/$ISA/pam_tally.so
May 22 14:25:18 yufei login: FAILED LOGIN SESSION FROM (null) FOR root, Module is unknown
May 22 14:25:18 yufei init: tty (/dev/tty1) main process ended, respawning
这就看得很清楚了,除了message中显示的init: tty (/dev/tty1) main process ended, respawning外,还显示了很多内容。从日志信息可以看出说是/lib/security/pam_tally.so这个不存在,由于我就进入 /lib/security/里面查看,发现有2个类似的文件pam_tally.so和pam_tally2.so。我想可能原因就在这里了,为什么文 件是存在的,而系统确找不到呢?那我就打开配置文件看。

3、解决方案一

修改/etc/pam.d/system-auth 我把/etc/pam.d/system-auth文件中的pam_tally.so全部换成pam_tally2.so保存后重新启动系统,再进行本地 登陆,发现成功登陆了。而且远程的SSH登陆也是正常的。X window也是正常登陆。更换的内容如下四行
auth       required       pam_tally2.so  onerr=fail deny=3 unlock_time=300
auth           required     /lib/security/$ISA/pam_tally2.so onerr=fail deny=3 unlock_time=300
auth       required       pam_tally2.so  onerr=fail deny=3 unlock_time=300
auth           required     /lib/security/$ISA/pam_tally2.so onerr=fail deny=3 unlock_time=300

4、解决方案二

拷贝pam_tally2.so成pam_tally.so 用系统默认的/etc/pam.d/system-auth文件 为什么会出现上面的问题呢?于是我又对pam_tally.so进行了一下观察
[root@yufei init.d]# ls -l /lib/security/pam_tally*
-rwxr-xr-x. 1 root root 12032 Feb 16  2010 /lib/security/pam_tally2.so
-rw-r--r--. 1 root root     0 May 22 14:28 /lib/security/pam_tally.so
发现pam_tally.so这个文件的大小与权限和创建日志都与pam_tally2.so不一样,我就来了个CP
[root@yufei security]# cp pam_tally2.so pam_tally.so -y
或者是
[root@yufei security]# ln -s pam_tally2.so pam_tally.so
然后把/etc/pam.d/system-auth里面的相关内容还原,同样能正常登陆。

4、解决方案三

如果你的/etc/pam.d下有system-auth-ac,也这用直接把此文件拷贝成system-auth。
cp -f system-auth-ac system-auth
以及上面的三种解决方案哪个更好,留给日后来验证吧,我是用第三个方案的。 是什么原因导致这样的问题,我还真不清楚,如果你也和我遇到过同样的问题或知道什么原因的话,希望和我一起交流。