如何恢复已删除的 /etc/passwd 文件?

如何恢复已删除的 /etc/passwd 文件?

我删除了/etc/passwd文件,现在无法登录。我不知道 root 密码,试了很多密码,但都不起作用。

我怎样才能解决这个问题?

答案1

这个问题似乎已经有合适的答案,我只会扩展@Lekensteyn 的评论

sudo cp /var/backups/passwd.bak /etc/passwd
sudo chmod 644 /etc/passwd

答案2

以下是以图形方式执行此操作的步骤:

  1. 使用 Ubuntu 可启动媒体启动到实时 Ubuntu 环境;

  2. 启动 Nautilus 文件管理器并挂载Ubuntu 分区(这里是快照,129 GB 文件系统(英文): snap1

    (按Ctrl+L查看分区的 UUID。) snap2

  3. 以 root 权限启动 Nautilus(按Alt+F2并输入gksu nautilus,然后按回车键); snap3

  4. Ubuntu 分区应与其 UUID 一起显示在侧栏中。单击以挂载它,然后转到目录/etcsnap4

  5. /etc目录中,向下滚动以找到名为的文件passwd-,然后在目录中复制该文件(按住 Ctrl键,将鼠标指针放在文件上,按住鼠标左键鼠标指针,然后发布鼠标按钮然后按Ctrl键在同一目录中进行复制;passwd- (copy)将创建一个名为的文件); snap5

  6. 选择复制的文件,右键点击并选择改名.然后将文件重命名为passwdsnap6

  7. 文件重命名后,passwd右键单击并选择特性从上下文菜单,然后在选项卡中权限设置适当的权限,即所有者应该有读和写许可,而对于团体其他的设置访问权限只读并关闭属性窗口; snap7

  8. 现在重新启动系统,您应该能够使用密码登录。


您可以在实时环境中使用终端执行相同操作。

步骤:

  1. 启动到实时 Ubuntu 会话;

  2. 打开终端或 tty 并输入命令:

    sudo fdisk -l
    

    (并记下您的 Ubuntu 分区的设备名称,其格式为/dev/sdX.)

  3. 安装设备,

    sudo mount /dev/sdXY /mnt
    

    sdXY用你的目标设备替换。)

  4. cd到目标系统/etc目录:

    cd /mnt/etc
    
  5. 使用备份文件恢复,并设置相应权限:

    sudo cp passwd- passwd
    sudo chmod 644 passwd
    

    或者使用以下备份/var/backups/passwd.bak

    sudo install -m 644 /mnt/var/backups/passwd.bak /mnt/var/backups/passwd
    

    (正如 Lekensteyn 在其评论

  6. 然后重新启动计算机:

    sudo reboot
    

答案3

如果您可以登录,只需打开终端并尝试以下操作:

sudo cp /etc/passwd- /etc/passwd

sudo chmod 644 /etc/passwd

别的

启动到恢复模式或从 Ubuntu Live CD 启动。然后,安装旧驱动器:

mkdir /olddrive
mount /dev/hda5 /olddrive
assuming that your old drive is on /dev/hda5.
then, cd to /olddrive/etc
type:
echo "root::0:0:Superuser:/:/bin/bash" > passwd

然后重新启动。这将不会为 root 设置密码。

然后,您可以登录、重新创建所有帐户等。

您也可以使用名为(我认为)的备份/etc/passwd-

编辑:(另一种方法“我以前没有尝试过,但我认为它也应该有效”)

  • 启动时启动 GRUB(启动时按 ESC)
  • 按下 e 键(恢复模式)
  • 按 e 键选中以 kernel 开头的行
  • 按空格键并输入“ init=/bin/bash
  • 按 Enter 键
  • 按 b
  • 在命令提示符下输入:“ cp /etc/passwd- /etc/passwd
  • 重新启动到 GRUB
  • 按下 e 键(恢复模式)
  • 按 e 键选中以 kernel 开头的行
  • 按空格键并输入“init=/bin/bash”
  • 按 Enter 键
  • 按 b
  • 在命令提示符下输入mount -o remount,rw /
  • 输入“passwd YOURUSERNAMEHERE”(如果您不知道您的用户名,请输入“ls /home”(小写的 L 和小写的 S)来查看用户列表)
  • 提示时输入新密码
  • 重新启动至正常启动。

来源

相关内容