单用户模式

单用户模式 < 修改 root 密码 >

如果你忘记了 Linux 系统的 root 密码,该肿么办呢?重新安装系统吗?当然不用!你只需要进入 emergency mode 
更改 root 密码即可。 这个模式也叫做单用户模式,具体步骤如下。

1. 重启系统

  • 3 秒钟内按向下的方向键,目的是为了不让它进入系统,而是停留在开机界面,如下图
  • 单用户模式

按方向键移动光标,定位是第一行,按字母 e 编辑它,然后进入另一个界面,这时候会出来很多字符,这些都是 CentOS7 启动选项。然后移动向下的方向键,吧光标定位在 linux16 开头的行,如图
单用户模式

2. 进入 emergency 模式

  • 按向右的方向键,移动到第二行,会看到 or,把 or 改成 rw init=/sysroot/bin/bash,如图
    单用户模式

  • 然后同时按住 Ctrl 和 X 这两个键, 系统就会进入下面这个界面,这样就正式进入 emergency 模式。
    单用户模式


3. 修改 root 密码

  • 首先切换到原始系统,然后在修改密码,操作如下图
  • 单用户模式

说明: 其中 chroot 命令用切换系统,后面的 /sysroot 目录就是原始系统,在这个下面才可以修改 root 密码,passwd 命令就是修改 root 密码的命令,运行后,返回的结果很奇怪,出现了很多小方块,俗称乱码,其实这些小方块本来是汉字的,但是在 vmware 里面它并不支持中文。如果大家知道这个命令的用法,此时你连续输入两次新密码就 ok 了,(画箭头的地方都是我们要输入的命令) 
LANG=en 是把语言设置成英文的。再次运行 passwd 命令,就可以正常显示字符了。


密码虽然修改完了,但是还需要一个格外的操作,相关命令如下:

# touch /.autorelabel

注意,这个文件名字一定要写对,否则更改的密码将不能生效。执行这一步的作用是让 SELinux 生效,如果不执行,我们修改的密码是不会生效的。然后同时按 Ctrl+D 这两个键,在输入命令 reboot,这样系统会重启,等待几秒后,出现登录界面,此时使用我们的新设置的密码登录就完成了。