在极少数情况下,RHEL 或 CentOS 6 系统因(例如)不当关闭或启动时强制 fsck 检查失败而无法启动,控制台将提示用户输入 root 密码。
如何禁用密码检查并直接进入 root-shell?
不可接受答案:
- 覆盖
init
内核命令行(即 grub) - 将 /sbin/sulogin 链接/替换为 /sbin/sushell。 (这可行,但会引发安全框架的危险信号)。
- 从其他设备启动
答案1
rc.sysinit
当出现需要管理员干预的问题时,将在 中的多个点rcS-emergency
运行,例如:
echo $"*** An error occurred during the file system check."
echo $"*** Dropping you to a shell; the system will reboot"
echo $"*** when you leave the shell."
str=$"(Repair filesystem)"
PS1="$str \# # "; export PS1
[ "$SELINUX_STATE" = "1" ] && disable_selinux
start rcS-emergency
这是 rcS-emergency 脚本:
. /etc/sysconfig/init
plymouth --hide-splash || true
[ -z "$EMERGENCY" ] && EMERGENCY=/sbin/sulogin
exec $EMERGENCY
如果添加EMERGENCY=/bin/sushell
到/etc/sysconfig/init
,它将运行 sushell,它不会要求输入密码。