RHEL 7 重置 root 密码
- 查看是否为 RHEL7 系统
# 查看内核版本
cat /etc/redhat-release
# 如果信息为以下内容,则可以采用此方法重置 root 密码
Red Hat Enterprise Linux Server release 7.0 (Maipo)
- 重启 Linux 系统主机,并出现引导界面时,按下键盘上的
e
键进入内核编辑界面
- 在
linux16
参数这行的最后面(即LANG=en_US.UTF-8
尾部)先敲一个空格
然后添加\rd.break
参数,然后按下Ctrl + X
组合键来运行修改过的内核程序
这里需要注意的是:
- 页面内容一般情况下是显示不全的,需要按住上下箭头滚动。
- 添加 \rd.break 参数的时候,你也可以不用添加 ‘\反斜杠’ 但是必须要先在 linux16 末尾处敲击一个空格之后写入 rd.break 参数
- 稍后即可进入系统的紧急救援模式
- 依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录 Linux 系统了。
- 以可读写的权限重新挂载硬盘上真实系统根目录( /sysroot )目录
# -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。
# 例如原先是唯读的系统,现在用可读写的模式重新挂上。
# -o rw:用可读写模式挂上。
# 可以合并参数写,即 mount -o remount,rw
mount -o remount,rw / /sysroot
# 同样也可以直接写成这样 (直接省略掉根目录 / )
mount -o remount,rw /sysroot
- 把环境切换到真实系统根目录 /sysroot
chroot /sysroot
- 修改 root 账户密码
# 输入 passwd 命令时,是交互式界面。
# 同样也可以直接输入 echo "redhat" | passwd --stdin root 命令,直接将 root 密码,修改为 redhat
passwd
- 告诉系统下次启动将对文件进行 selinux 上下文重新打标。这也就造成了下次重启的时候时间会很长,autorelabel 是一个隐藏文件,需要注意的是前面有一个点
touch /.autorelabel
- 退出真实系统根目录环境
exit
- 重启系统
reboot
- 修改密码后,首次重启的时间将会比较长,因为系统将对所有文件进行 SeLinux 打标,请耐心等待,整个过程并非死机,请勿在打标过程中手动强制再次重启,否则系统将会永久性损坏导致无法开机。