我几周前参加了 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。