我在创建管理员账户时不小心输错了名字。虽然我在登录屏幕上设法更改了用户名,但我无法将 重命名为/home/oldusername
。/home/newusername
我尝试了大多数在线教程,但都失败了。
我尝试的代码是这样的:
usermod -l newusername -m -d /home/newusername oldusername
但输出是:
cannot lock /etc/passwd; try again later.
我该如何修复该问题并将文件夹更改为 newusername 并期望所有应用程序像以前一样运行?
答案1
答案2
您需要从恢复模式执行此操作。
重启,选择恢复模式,然后进入根控制台并在那里输入命令。然后正常重启。
答案3
您可以采取的第一个简单解决方案是创建一个具有所需正确用户名的新用户,并将其添加到管理员组:/etc/sudoers
另一种方式,你可以用你的旧用户名来做(我在 Fedora 上测试过了):
# usermod -l new-username old-unername
答案4
更改用户名会导致不可避免的问题。许多程序会尝试从不再存在的旧目录中读取和写入数据。创建一个新帐户并复制所有旧文件夹似乎是个好主意。我相信还有其他问题。
但这回答了先前的评论对我没有帮助的问题。
简单地以 root 身份重新登录可能行不通,因为我的旧用户名有活动进程。所以我按照其他人说的做了,重新启动进入恢复模式。但后来我收到了原始发帖人提到的错误消息。正如发现的那样这里这是因为驱动器在恢复模式下是只读的,所以您必须使其可读写。
摘要修复:
sudo passwd root # assign a password
reboot # into recovery mode and log in as root
如果未设置显示 grub 菜单,请在启动时按住 shift。以 root 身份登录并进入 shell。
mount -o remount,rw / # make the disk writable
usermod -l <newname> -d /home/<newname> -m <oldname>
passwd -l root # deactivate the root password
reboot
您的旧用户名将成为登录名,但仍会让您进入。要更正它,请使用以下命令编辑文件并在同一行上查找包含新旧用户名的行,然后将旧用户名更改为新用户名:
sudo nano /etc/passwd
正如其他人在其他地方所说的那样,更改用户名时可能会出现问题,因为许多程序会尝试在不再存在的旧用户名文件夹中查找或存储应用程序数据。