当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

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

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

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

我丢失了所有文件吗?

最佳办法

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

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

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

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

  2. 在 Nautilus 中,找到已安装的 Ubuntu 系统内的 etc 目录。 (这与live CD的etc目录不同。安装的Ubuntu系统内的etc目录在你刚刚挂载的分区中。)

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

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

  5. 运行此命令:

    sudo cp passwd_bkp passwd
    

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


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

  • adduser /addgroup

  • deluser /delgroup

  • usermod

  • groupmod

  • useradd (lower-level 比 adduser ,你通常应该使用 adduser 代替)

  • userdel (lower-level 比 deluser ,你通常应该使用 deluser 代替)

  • groupadd (lower-level 比 addgroup ,你通常应该使用 addgroup 代替)

  • groupdel (lower-level 比 delgroup ,你通常应该使用 delgroup 代替)

  • passwd

  • gpasswd

  • pwck

  • grpck

您可以使用其中一些实用程序 change your usernameThis answer explains one way in detail. 但是,您应该知道(正如目前那里的评论所涉及的那样)某些应用程序假定您的用户名保持不变。因此,更改您的用户名可能会导致一些问题。

次佳办法

作为引导 livecd 的替代方法,您可以在 grub 菜单中按 e 来编辑救援模式条目,并将 init=/bin/sh 添加到内核参数中。这将使您直接进入 root shell,您可以在使用 mount -o remount,rw / 重新安装文件系统读写后将备份文件复制回原始文件。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12443.html,未经允许,请勿转载。