问题描述
我试图更改我的用户名以及我的主目录( /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 身份执行此操作。这是一种非常简单的方法。
-
打开终端窗口(
Ctrl
+Alt
+T
)。在终端中,键入cd
并键入Space
键,但不要按Enter
。 -
在 Nautilus 中,找到已安装的 Ubuntu 系统内的
etc
目录。 (这与live CD的etc
目录不同。安装的Ubuntu系统内的etc
目录在你刚刚挂载的分区中。) -
将此
etc
目录拖到终端中,这会将其完整路径粘贴到终端中,完成cd ...
命令。 -
按
Enter
运行命令。现在您位于包含passwd
文件的目录中。我假设您的备份文件passwd_bkp
也位于此处。 -
运行此命令:
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 username。 This answer explains one way in detail. 但是,您应该知道(正如目前那里的评论所涉及的那样)某些应用程序假定您的用户名保持不变。因此,更改您的用户名可能会导致一些问题。
次佳办法
作为引导 livecd 的替代方法,您可以在 grub 菜单中按 e
来编辑救援模式条目,并将 init=/bin/sh
添加到内核参数中。这将使您直接进入 root shell,您可以在使用 mount -o remount,rw /
重新安装文件系统读写后将备份文件复制回原始文件。