我在CentOS 5.8上运行了一个yum更新,现在我无法以root身份login到控制台。 基本上会发生什么是我收到login提示,input正确的用户名和密码,并立即吐回到login提示。 如果input的密码不正确,我被告知密码不正确,因此我知道我正在使用正确的凭据。
我似乎可以find唯一的日志是/ 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正确地为我的根用户列出了bash:
root:x:0:0:root:/root:/bin/bash
以及/ tmp(1777)&root(750)上的权限。
我试图重新安装bash,pam和mingetty无济于事,确认/ bin / login存在。
任何想法将不胜感激。
谢谢!!
-slashp
你正在login就好 – 无论你启动的shell是立即退出。
启动到单用户模式或救援CD并chroot到您的已安装系统。
首先,检查你的启动脚本(profile,bashrc等)。 确保他们没有做任何会立即退出的事情。
你能连chroot吗? 如果你不能,那就意味着它不能运行你的shell。 尝试使用chroot并指定一个静态shell。
将根目录的shell更改为一个静态的shell,这应该有所帮助。 然后从那里你可以重新启动到已安装的系统,并开始计算出来的东西。
你在使用selinux / apparmor吗? 你尝试设置执行宽容吗? 这有帮助吗?
也许你有一个主要的glibc变化或者是影响login的东西。 你有没有重新启动你的yum update
或至less看到/var/log/yum.log
中更新了什么? 后者会告诉你哪些软件包被修改/更新。
您可以使用以下命令validation安装的/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)