Skip to content

Linux 进入单用户模式

WARNING

root 密码应妥善保管。修改后可能导致依赖该密码的服务中断,须谨慎操作,并取得主管部门授权;修改完成后及时更新相关服务中的 root 密码。

一、CentOS 7

  1. 重启系统。
  2. 开机时持续按 Esc,进入如下界面:

  1. e 进入编辑界面,找到含 ro 的一行,将 ro 替换为:
bash
rw init=/sysroot/bin/sh

  1. Ctrl + x 进入单用户模式:

  1. 执行 chroot 获取 root 权限:
bash
chroot /sysroot

  1. 修改 root 密码:
bash
passwd root

按提示输入两遍新密码后回车。

  1. 更新 SELinux 上下文(SELinux 已关闭则可跳过):
bash
touch /.autorelabel

  1. 退出 chroot:
bash
exit

  1. 重启系统:
bash
reboot
  1. 重启后在登录界面使用新密码登录,确认修改成功:

二、CentOS 6

  1. 到内核选项按 e
  2. 选中 kernel 这一行再按 e
  3. 在行末输入 single1,然后按 b 启动。

三、Ubuntu

  1. 开机时按 Shift,选择高级选项:

  1. 在高级选项中选择对应内核的 recovery mode(一般选最上面一项):

  1. 找到含 recovery nomodeset 的一行,将 ro recovery nomodeset 替换为:
bash
rw single init=/bin/bash

然后按 Ctrl + x

四、SUSE 11

  1. 重启机器,在 GRUB 引导界面的 Linux 启动项中加上 init=/bin/bash(删除其余参数),使系统在运行 login 前进入 bash。
  2. 出现 (none)#: 提示符后,将根文件系统重新挂载为可读写:
bash
mount -n / -o remount,rw
  1. 重置密码:
bash
passwd root
  1. 改完后将根文件系统置回只读:
bash
mount -n / -o remount,ro
  1. 强制重启使密码生效:
bash
reboot -f

五、OpenEuler

openEuler 的 GRUB 用户密码示例:用户名 root,密码 openEuler#12

  1. 在登录/引导界面输入字母 e 进入 GRUB。
  2. linux 行将 ro 改为 rw,并在行尾加入 init=/bin/sh,按 Ctrl + x 进入:

  1. 修改密码(需满足复杂度要求):
bash
passwd root
  1. 若 SELinux 为 enforce/enable,先执行:
bash
touch /.autorelabel

否则可直接重启。

  1. 回到正常 init:
bash
exec /sbin/init

最近更新