我知道几种重置 root 用户密码的方法,但想知道哪种方法最好以及为什么这样做。例如:
一个方法:
- 蛴螬>e
init=/bin/sh
(如有必要,请删除rhgb
并标记)> +quiet
Ctrlx/usr/sbin/load_policy -i
mount -o remount,rw /
passwd root
或者passwd
mount -o remount,ro /
乙法:
- 蛴螬>e
rd.break
> Ctrl+xmount -o remount,rw /sysroot/
chroot /sysroot/
passwd root
或者passwd
touch /.autorelabel
哪个是最好的?为什么它是最好的?我正在准备 RHCSA(红帽认证系统管理员)考试。我需要知道每种方法的相对优点。其中之一更便携吗?更安全吗?有理由选择其中之一吗?
答案1
我认为最好的方法是红帽所示文档。
这是你的第二种方法。对于 GRUB2/RHEL7,单一/紧急模式不应该工作,因为它将用于sulogin
在显示命令提示符之前对您进行身份验证。
因此,让我们区分不同的方法。
对于 RHEL5、RHEL6,将
1
或s
附加init=/bin/bash
到内核命令行对于 RHEL7、RHEL8、CentOS7、CentOS8,将
rd.break
或init=/bin/bash
附加到内核命令行
看来第二种方法在RHEL5和RHEL6上不可用。但对于 RHEL7,我更喜欢第一个,因为当单一模式受密码保护时添加 init=/bin/bash 有点棘手,并且可能附加rd.break
是标准化它的一种方法。
答案2
“rd.break”的“rd”部分指的是 ramdisk——初始 ramdisk (initrd) 环境。
第二种方法(使用 rd.break)更适合 RHEL7。某些系统(带有 USB 键盘或虚拟机)实际上在您重新启动时似乎并未设置密码。可能它只是为 ramdisk 内的 /etc/shadow 设置密码,而不是您期望的密码。
我不知道这与 USB 键盘有什么关系,但这就是知识库的内容,也是我迄今为止的经验。我更怀疑这与你的根文件系统是否位于 LVM 上有更多关系(提示:dracut)