我删除了/etc/passwd
文件,现在无法登录。我不知道 root 密码,试了很多密码,但都不起作用。
我怎样才能解决这个问题?
答案1
这个问题似乎已经有合适的答案,我只会扩展@Lekensteyn 的评论:
sudo cp /var/backups/passwd.bak /etc/passwd
sudo chmod 644 /etc/passwd
答案2
以下是以图形方式执行此操作的步骤:
使用 Ubuntu 可启动媒体启动到实时 Ubuntu 环境;
启动 Nautilus 文件管理器并挂载Ubuntu 分区(这里是快照,129 GB 文件系统(英文):
(按Ctrl+L查看分区的 UUID。)
以 root 权限启动 Nautilus(按Alt+F2并输入
gksu nautilus
,然后按回车键);Ubuntu 分区应与其 UUID 一起显示在侧栏中。单击以挂载它,然后转到目录
/etc
;在
/etc
目录中,向下滚动以找到名为的文件passwd-
,然后在目录中复制该文件(按住 Ctrl键,将鼠标指针放在文件上,按住鼠标左键,拖鼠标指针,然后发布鼠标按钮然后按Ctrl键在同一目录中进行复制;passwd- (copy)
将创建一个名为的文件);选择复制的文件,右键点击并选择改名.然后将文件重命名为
passwd
;文件重命名后,
passwd
右键单击并选择特性从上下文菜单,然后在选项卡中权限设置适当的权限,即所有者根应该有读和写许可,而对于团体和其他的设置访问权限只读并关闭属性窗口;现在重新启动系统,您应该能够使用密码登录。
您可以在实时环境中使用终端执行相同操作。
步骤:
启动到实时 Ubuntu 会话;
打开终端或 tty 并输入命令:
sudo fdisk -l
(并记下您的 Ubuntu 分区的设备名称,其格式为
/dev/sdX
.)安装设备,
sudo mount /dev/sdXY /mnt
(
sdXY
用你的目标设备替换。)cd
到目标系统/etc
目录:cd /mnt/etc
使用备份文件恢复,并设置相应权限:
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 在其评论)
然后重新启动计算机:
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)来查看用户列表)
- 提示时输入新密码
- 重新启动至正常启动。