Linux root 登录受限后的应急处理

10次阅读

root登录被拒需按五步排查:一、启用ssh的permitrootlogin和passwordauthentication;二、修复/etc/securetty权限与内容;三、检查pam配置中root限制规则;四、用faillock或passwd -u解除账户锁定;五、单用户模式重置密码。

Linux root 登录受限后的应急处理

当您尝试以 root 用户登录 linux 系统时,提示“access denied”、“Permission denied”或直接拒绝认证,这通常表明 root 账户已被系统级策略限制或锁定。以下是针对该问题的多种应急处理路径:

一、检查并修正 SSH 服务配置

SSH 是远程登录 root 的主要通道,其配置文件 /etc/ssh/sshd_config 中的关键参数若被禁用,将直接导致 root 登录失败。需确认 PermitRootLogin 和 PasswordAuthentication 是否处于允许状态。

1、使用具有 sudo 权限的普通用户登录系统,执行命令:sudo vi /etc/ssh/sshd_config

2、定位到 PermitRootLogin 行,将其值设为 yes;若该行被注释(以 # 开头),需先删除 # 符号。

3、同样检查 PasswordAuthentication 行,确保其值为 yes,且未被注释。

4、保存退出后,执行 sudo systemctl restart sshd 重启服务。

二、验证 /etc/securetty 文件完整性

/etc/securetty 文件定义了 root 用户可登录的终端设备列表。若该文件为空、缺失关键 tty 条目,或权限不为 600,则控制台本地 root 登录将被拒绝。

1、运行 ls -l /etc/securetty 检查文件权限,若非 -rw——-(即 600),则执行 sudo chmod 600 /etc/securetty

2、执行 sudo cat /etc/securetty 查看内容,确认包含标准虚拟终端条目,例如:console tty1 tty2 … tty12

3、如内容异常或缺失,可临时重建:执行 sudo tee /etc/securetty

三、排查 PAM 认证模块限制

PAM(Pluggable Authentication Modules)通过 /etc/pam.d/sshd 等配置文件实施细粒度登录控制。若其中存在 deny 或 requisite 类规则限制 root,将覆盖其他配置。

1、运行 sudo grep -i “root” /etc/pam.d/sshd 检索是否含 root 相关限制语句。

2、检查是否存在类似 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so 的行,该模块会强制校验 /etc/securetty。

3、若发现明确禁止 root 的规则(如 auth [success=done default=die] pam_succeed_if.so user != root),可临时注释该行(在行首加 #)。

4、修改后无需重启服务,PAM 规则即时生效。

四、解除账户锁定状态

root 账户可能因连续认证失败触发系统级锁定机制(如 faillock 或 pam_faildelay),此时即使密码正确也无法登录。

1、检查锁定状态:执行 sudo faillock –user root,若输出含 “faillock: root is locked” 则确认被锁。

2、清除失败记录:运行 sudo faillock –user root –reset

3、若系统使用 shadow 工具集,还可检查 sudo chage -l root 输出中 “Password locked” 字段是否为 “True”,若是则执行 sudo passwd -u root 解锁。

五、进入单用户模式重置凭证

当所有常规登录途径均失效,且无其他管理员账户可用时,可通过 GRUB 启动参数干预,绕过初始化流程直接获取 root shell,用于密码重置或配置修复。

1、重启系统,在 GRUB 启动菜单出现时,快速按 e 键进入编辑模式。

2、找到以 linux 开头的内核加载行,将光标移至行末,添加空格后追加 rd.break enforcing=0centos/RHEL)或 init=/bin/bash(部分 debian/ubuntu 变体)。

3、按 Ctrl+XF10 启动修改后的内核。

4、挂载根文件系统为可写:执行 mount -o remount,rw /sysroot,随后 chroot /sysroot

5、执行 passwd root 修改密码,再运行 touch /.autorelabel(如 SELinux 启用)后重启。

text=ZqhQzanResources