我的一位同事错误地删除了 etc/passwd 和 etc/shadow 文件。
问题是现在系统没有任何帐户。无法通过 ssh 连接或进行操作。
我如何创建 root 帐户?
答案1
如果您有物理访问权限,则可以使用内核行 rw init=/bin/bash 重新启动。这应该会为您提供 root 访问权限以重新创建用户帐户。
答案2
答案3
如果您没有打开现有的 rootshell,那么我怀疑您是否可以在没有 bios 或引导加载程序访问的情况下修复此问题。
此时你有两个选择。
- 启动 livecd。
- 使用 init=/bin/sh 从已安装的系统启动,然后手动启动网络。
哪一个更容易取决于具体情况。
如果您确实有一个打开的现有 root shell,那么您应该能够使用它。
现在您有了一种创建文件的方法,下一个问题是将什么放入其中。Debian 有几类用户(Debian 策略 9.2.2)。
- 对于给定的 Debian 版本,始终存在具有固定 ID 的系统用户(UID 0-99 和 65534)
- 具有动态分配 ID 的系统用户(UID 100-999)
- 普通用户(UID 1000-59999,用户数量巨大的系统也可能使用 65536-4294967293)
- 具有固定 ID 但仅按需创建的系统用户(UID 60000-64999)。
第一步应该是恢复第一类用户。最容易的方法是,从运行相同 Debian 版本的另一个系统复制他们的密码和影子条目。
如果您也销毁了您的组文件,那么相同的 ID 范围适用。
恢复基本信息后,您可以开始重新创建其他用户。对于普通用户,查看 /home 应该会为您提供有关哪个用户使用哪个 UID 的线索。对于系统用户,可能需要花费更多精力才能弄清楚,可能涉及搜索所有者不明的文件,然后查看安装了相同软件的另一个系统,以找出哪个用户应该拥有这些文件。