每次我们重启 Linux 服务器,root 似乎都会获得一个新的密码哈希值

每次我们重启 Linux 服务器,root 似乎都会获得一个新的密码哈希值

有一天,一个朋友让我更改他们忘记的 Linux 服务器的 root 密码。

我已经多次完成此过程并且没有任何问题,但是这次发生了一些奇怪的事情,我需要对此进行解释。

我做了什么 :

1.重新启动服务器并进入单一模式,再次要求我输入 root 密码以进行维护。

2.再次重启服务器并将其添加init=/bin/bash到启动选项的末尾,然后很快得到了一个 shell(我想,我几乎完成了这项工作)。

3.我以前mount -o remount remount, rw/能够写入磁盘。

4.passwd然后我使用命令更改了 root 密码收到密码更新成功的消息

5.重新启动系统(我按了 Ctrl+Alt+Del)。

6.尝试了新的 root 密码,它被拒绝,因为密码错误。我试了几次。没有运气。

7.再次执行上述步骤并修改密码文件,创建一个没有密码的新用户(new_user::0:0:root:/root:/bin/bash),保存文件并重试。再次报告密码错误!(没想到会要求输入密码,因为new_user没有密码)

8.打开影子文件并输入我知道其值的哈希值new_user。然后我保存了文件。我清楚地看到系统确认更改已写入文件,再次尝试。没有运气。

9.再次查看影子文件,又一次惊喜:我输入的值new_user不在那里。我不明白为什么,因为我在Nano编辑器中看到了文件已被修改的确认信息。

10.我重新启动了系统并再次检查了影子文件。在这里我意识到每次重新启动系统时,原始 root 用户的哈希都会发生变化 !!!

这可能是我无法更改 root 密码的原因,但这是为什么呢?每次我重新启动服务器时,似乎都必须处理一个新的哈希值(Coluld it be a lock or something on shadow file ?)。我不明白发生了什么。

最终决定撤销更改,所以我转到文件passwd并删除了我添加的行new_user(再次确认更改),但重新启动服务器后,我检查了passwd文件,发现用户仍然在那里。我无法写入影子文件,但有一次我写入 passwd 文件时,我无法将其删除。

请帮助我理解这个问题。

答案1

  1. sync-sync修改后,重启前运行。更改可能只存在于磁盘缓存中,缺少适当的初始化会导致更改无法写回。
  2. 只读磁盘故障:某些基于闪存的系统可能会发生故障,从而变成只读。我使用 SD 卡时就遇到过这种情况,但 SSD 也可能出现这种情况。但如果机器在正常启动时工作正常,则这种情况不太可能发生。

相关内容