linux下root无法登陆,一般有以下几种情况:

1、/etc/securetty 中规定了root可以从哪个tty设备登录,如果root登录不了,可以检查/etc/securetty文件,看看是否禁用了什么设备。如果发现被修改,可以将文件改回原来的样子。并且注意,如果修改了该文件,要保证该文件的权限模式为600,才能正常生效。
正常的/etc/securetty文件内容:
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11

2、/etc/ssh/sshd_config文件中禁用root登录。如果sshd_config文件中有PermitRootLogin no这行,root就无法通过ssh登录。请改成PermitRootLogin yes,然后重启ssd。

# /etc/init.d/sshd restart

3、使用了pam认证,pam配置中限制了root账号的登录。这种情况的可能性比较多,需要仔细检查/etc/pam.d/下以及/etc/security/下的配置文件是否有禁止root的设置。

4、/etc/passwd文件被修改。检查passwd文件中,root的uid是否为0,root的shell路径是否真实存在,总之root这行的每个设置要完全正常才行。(我就遇到过一种特殊情况,passwd文件的换行符变成了DOS格式,结果linux系统认为shell路径是/bin/bash^M,返回路径不存在错误,导致了root无法登录。所以还要保证passwd文件的换行符是unix格式。)

5、root无法登录Xwindows图形界面。检查/etc/pam.d/gdm,将
auth required pam_succeed_if.so user != root quiet 这行注释掉。

此外,还有很多其他的情形会导致root无法登录。
遇到root无法登录时,要看看是否ssh方式、控制台方式都无法登录。还有看看是否可以用其他账号登录,然后su成root,来进行修复。实在不行,再用单用户方式重启系统,或用光盘引导进入系统,来解除root的禁用(参考如何找回root密码)。
如果是黑客禁用了root登录,还得检查/etc/passwd中是否有其他可疑的账号具有uid=0,以及/etc/sudoers中是否有可疑账号具有sudo权限,然后还得检查系统中是否有rootkit,sshd等系统文件是否被黑客替换等。

————————————————————————————————————————————————————

RHEL 5.4中的关于pam.d/login的设置,导致root在内的用户无法在控制台登录
因为在redhat 5.4 的64位版的系统中安装oracle 10,所以在/etc/pam.d/login 中加入:

session required /lib/security/pam_limits.so

然而这样的话在64位LINUX上就可能会出现ROOT无法在控制台上登陆的情况。
解决方法:
在32位系统使用此配置for oracle :
session required /lib/security/pam_limits.so
上面的配置为某些文档和资料所载,但只适合32位系统

而在64位系统上要使用此配置for oracle :
session required /lib64/security/pam_limits.so

建议配置:
session required pam_limits.so

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐