我想在我的 Ubuntu 终端上更改主机名之前的名称(x
in x@y
),为此,我将 old x
in替换/etc/passwd
为/etc/shadow
newname
现在,当我尝试打开 Ubuntu 时,它无法打开;它将我重定向到锁定屏幕
答案1
这是因为用户名不能手动更改(不仅仅是更改里面的用户名/etc/passwd
和/etc/shadow
文件);/home
目录没有创建,所以它找不到可以登录的地方,最后返回登录屏幕,告诉用户必须修复此问题。以下是修复该问题的不同方法:
使用控制台连接
tty
:- 使用快捷键Ctrl+ Alt+F1打开
tty
终端 - 尝试登录 -> 如果不起作用,请尝试使用 root 权限登录
- 恢复
/etc/passwd
和/etc/shadow
文件的更改 - 恢复完成后,使用
sudo usermod -l newUsername oldUsername
命令将旧用户名更改oldUsername
为新用户名newUsername
到处需要 - 注销/重启,你可以使用++Ctrl返回GUIAltF7
- 使用快捷键Ctrl+ Alt+F1打开
如果您无法使用
tty
控制台连接到登录- 重启电脑并以恢复模式(或命令行模式)启动 Ubuntu不知道它的具体名称)
- 恢复
/etc/passwd
和/etc/shadow
文件的更改 - 恢复完成后,使用
sudo usermod -l newUsername oldUsername
命令将旧用户名更改oldUsername
为新用户名newUsername
到处需要 - 重启电脑
如果这些方法都不起作用,那么您可以尝试使用实时会话恢复用户名
使用以下命令来挂载您的分区:
sudo fdisk -l ###find the partition which contains your data sudo mount /dev/sdaN /mnt ####N is the partition number (can be sdbN, sdcN too) sudo mount --bind /dev /mnt/dev sudo mount --bind /sys /mnt/sys sudo mount --bind /run /mnt/run sudo mount --bind /proc /mnt/proc sudo chroot /mnt ####after this command, you re inside your previous Ubuntu partition
- 恢复
/etc/passwd
和/etc/shadow
文件的更改 - 恢复完成后,使用
sudo usermod -l newUsername oldUsername
命令将旧用户名更改oldUsername
为新用户名newUsername
到处需要 - 重启电脑
如果这些方法都不起作用(我真的很怀疑),我就帮不上什么忙了
答案2
/etc/passwd
和都不/etc/shadow
适合手动/用文本编辑器编辑。
这对您没有太大帮助,但是为了更改您的用户名,您应该使用该usermod
命令。
我能想到两种可能的解决方案:
如果您的系统上有其他用户,请登录并恢复对上述两个文件所做的更改。
使用可启动介质(如 USB 棒或装有 Linux 的 CD-ROM),启动您的 PC 并安装已安装 Linux 的硬盘。然后恢复更改。