CentOS 5.8 - 更新后无法以 root 身份登录 tty1?

CentOS 5.8 - 更新后无法以 root 身份登录 tty1?

我在 CentOS 5.8 机器上运行了 yum 更新,现在无法以 root 身份登录控制台。基本上,我收到登录提示,输入正确的用户名和密码,然后立即返回登录提示。如果我输入了错误的密码,系统会提示我密码不正确,因此我知道我使用的是正确的凭据。

我似乎能找到的唯一关于发生什么事情的日志是 /var/log/secure,其中只包含:

15:33:41 centosbox login: pam_unix(login:session): session opened for user root by (uid=0)
15:33:41 centosbox login: ROOT LOGIN ON tty1
15:33:42 centosbox login: pam_unix(login:session): session closed for user root

该 shell 从未被生成。

我已经检查过我的 inittab,如下所示:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

我的 /etc/passwd 中正确列出了我的 root 用户的 bash:

root:x:0:0:root:/root:/bin/bash

以及 /tmp (1777) 和 /root (750) 的权限。

我尝试重新安装 bash、pam 和 mingetty,但没有成功,并确认 /bin/login 存在。

任何想法都将不胜感激。

谢谢!!

-斜杠

答案1

您登录一切正常 - 无论您启动什么 shell 都会立即退出。

启动到单用户模式或救援 CD 并 chroot 到您已安装的系统。

首先,检查您的启动脚本(profile、bashrc 等)。确保它们没有执行任何会立即退出的操作。

您甚至可以 chroot 吗?如果不能,则意味着它无法运行您的 shell。尝试 chroot 并指定静态 shell。

将 root 的 shell 更改为静态 shell 应该会有所帮助。然后,您可以从那里重新启动到已安装的系统并开始解决问题。

您是否在使用 selinux/apparmor?您是否尝试过将强制措施设置为宽容?这有帮助吗?

答案2

也许您对 glibc 进行了重大更改,或者影响了登录。您是否在之后重新启动了,yum update或者至少查看了 中更新的内容/var/log/yum.log?后者将告诉您哪些软件包已被修改/更新。

您可以/bin/login使用以下命令验证已安装的二进制文件:

# rpm -qf /bin/login
util-linux-2.13-0.59.el5
# rpm -vV util-linux | grep S.5

并报告第二个命令是否有任何输出...

编辑:

所以这似乎是库问题。我们假设这是/bin/login导致问题的原因。你能快速运行ldd二进制文件吗?你的输出看起来像这样吗?

# ldd /bin/login    
    linux-vdso.so.1 =>  (0x00007fffb57ec000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000035f3c00000)
    libpam.so.0 => /lib64/libpam.so.0 (0x00000035f8800000)
    libpam_misc.so.0 => /lib64/libpam_misc.so.0 (0x00000035f3800000)
    libaudit.so.0 => /lib64/libaudit.so.0 (0x00000035f6c00000)
    libc.so.6 => /lib64/libc.so.6 (0x00000035f1800000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00000035f2400000)
    /lib64/ld-linux-x86-64.so.2 (0x00000035f1400000)

相关内容