使用“init”和“rd.break”重置 root 密码有什么区别?

使用“init”和“rd.break”重置 root 密码有什么区别?

我知道几种重置 root 用户密码的方法,但想知道哪种方法最好以及为什么这样做。例如:

一个方法:

  1. 蛴螬>e
  2. init=/bin/sh(如有必要,请删除rhgb并标记)> +quietCtrlx
  3. /usr/sbin/load_policy -i
  4. mount -o remount,rw /
  5. passwd root或者passwd
  6. mount -o remount,ro /


乙法:

  1. 蛴螬>e
  2. rd.break> Ctrl+x
  3. mount -o remount,rw /sysroot/
  4. chroot /sysroot/
  5. passwd root或者passwd
  6. touch /.autorelabel

哪个是最好的?为什么它是最好的?我正在准备 RHCSA(红帽认证系统管理员)考试。我需要知道每种方法的相对优点。其中之一更便携吗?更安全吗?有理由选择其中之一吗?

答案1

我认为最好的方法是红帽所示文档
这是你的第二种方法。对于 GRUB2/RHEL7,单一/紧急模式不应该工作,因为它将用于sulogin在显示命令提示符之前对您进行身份验证。

因此,让我们区分不同的方法。

  1. 对于 RHEL5、RHEL6,将1s附加init=/bin/bash到内核命令行

  2. 对于 RHEL7、RHEL8、CentOS7、CentOS8,将rd.breakinit=/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)

相关内容