我删除了“/etc/passwd”文件,无法登录

joa*_*eao 22 authentication login users passwd-file

我试图更改我的用户名以及我的主目录 ( /home/username),我的系统开始崩溃。我删除了该passwd文件,但我有一个名为passwd_bkp. 我试图将其重命名passwd_bkppasswd,但它不起作用。没有执行任何命令......我在终端窗口中。

我重新启动了系统,现在无法登录。GRUB 提供了两个选项:Linux 和恢复模式。

我试图以 root 身份打开一个会话,但它说文件系统已损坏。我无法访问我的文件。

我丢失了所有文件吗?

Eli*_*gan 32

不,根据您的描述,您没有丢失任何文件(除了/etc/passwd,您已删除但已备份的文件)。

启动 Ubuntu live CD/DVD 或 live USB 闪存驱动器。选择Try Ubuntu(不是Install Ubuntu)。桌面加载后,打开 Nautilus(文件浏览器)窗口。您可以在Devices. 单击它以安装它。

现在您可以恢复备份。但是,您必须以 root 身份执行此操作。这是一种非常简单的方法。

  1. 打开一个终端窗口(Ctrl+ Alt+ T)。在终端中,键入cd并键入Space密钥,但不要按下Enter

  2. 在 Nautilus 中,找到etc已安装的 Ubuntu 系统内的目录。(这个etc和live CD的etc目录不一样,安装好的Ubuntu系统里面的目录在你刚挂载的分区里。)

  3. 将此etc目录拖到终端中,这会将其完整路径粘贴到终端中,完成cd ...命令。

  4. Enter运行命令。现在您位于包含您的passwd文件的目录中。我假设您的备份文件passwd_bkp也位于此处。

  5. 运行此命令:

    sudo cp passwd_bkp passwd
    
    Run Code Online (Sandbox Code Playgroud)

passwd将从您的备份中恢复文件,所以现在您应该能够重新启动,移除 CD/DVD 或 USB 闪存驱动器,然后重新启动到您安装的 Ubuntu 系统。您安装的 Ubuntu 系统应该可以再次运行。


对于未来,你应该知道,它不建议手动编辑/etc/passwd/etc/group/etc/shadow,或/etc/gshadow。相反,您应该使用作为 Ubuntu 一部分提供的实用程序对系统上的用户和组进行任何您需要的更改。您可能知道您可以在系统设置中或使用users-admin. 但是也有非常强大的命令行实用程序,它们仍然比自己手动编辑配置文件更安全、更容易。以下是 Ubuntu 中最相关的此类实用程序的文档:

您可以使用其中一些实用程序更改您的用户名这个答案详细解释了一种方法。但是,您应该知道(正如目前那里的评论所触及的那样)某些应用程序假定您的用户名保持不变。因此,更改您的用户名可能会导致一些问题。

  • 如果您没有进行备份,请尝试使用 `/etc/passwd-` 或 `/var/backups/passwd.bak`。请务必设置正确的权限。示例:`sudo install -m644 /etc/passwd- /etc/passwd` (2认同)