内核参数 init=/bin/bash 不起作用? (RHEL7、RHCSA 测试)

内核参数 init=/bin/bash 不起作用? (RHEL7、RHCSA 测试)

我几周前参加了 RHCSA 测试,这是一项实验室/实践测试。第一步是获得虚拟机的 root 访问权限。通常(这在我的 PC 的 VirtualBox CentOS 7 VM 上工作正常)我通过添加内核参数来完成此操作init=/bin/bash rw。但在测试的虚拟机上这并没有真正起作用。在内核将我设置为 root 密码后,即使在我发出 后,我输入的文本也没有回显到终端reset。事实证明,使用更改密码passwd是不可能的,因为终端似乎吃掉了我的一些击键。我不得不求助于使用内核参数rd.break。问题是为什么,尤其是奇怪的终端行为?

答案1

这可能不是您正在寻找的答案,但只是提一下,/etc/shadow一旦添加了密码,您就可以从文件中删除密码init=/bin/sh(我更喜欢 sh,因为由于历史原因,它可能出现在每个 *nix 环境中,它甚至可能是 bash 的符号链接,但你明白了。

一旦进入 shell,请始终重新安装驱动器mount -n -o remount,rw /并转到文件/etc/shadow。你应该阅读如下内容:

root:123l4kj'0978dsfgasfli132094187234aposdiuf987:14414:0:99999:7:::
.....

删除所有加密字符串并将其保留为:

root::14414:0:99999:7::

之后,您可以重置您的虚拟机,下次启动时您可以使用以下命令登录没有密码

附言。这里是一个关于这个的教程

答案2

init=/bin/bash rw

但是这个“rw”,它在那里做什么呢?它不会被解释为 bash 的参数吗?首先安装 root,然后可以启动 /bin/bash。

相关内容