如何更改管理员用户名?

我在创建管理员帐户时不小心输入了错误的名字。虽然我成功地在登录界面更改了用户名,但是我无法将/home/oldusername重命名为/home/newusername。我尝试了大部分的在线教程,但都失败了。
我尝试的代码是这样的:
usermod -l newusername -m -d /home/newusername oldusername

但是输出是:
cannot lock /etc/passwd; try again later.

如何解决这个问题并将文件夹更改为新用户名,同时确保所有应用程序能够正常工作?

你是以root权限运行该命令吗? - Seth
不允许在访客账户下进行操作。我想要更改的是根账户的名称,我猜。 - Fazlan
管理员和根用户是不同的吗?我不知道。 - Fazlan
嘿,我不明白,你有管理员/根账户的访问权限吗? - hingev
这个能帮到你吗?http://www.liberiangeek.net/2012/03/how-to-change-your-username-in-ubuntu-11-10-oneiric-ocelot/ - hingev
1您不能使用访客账户进行任何管理任务。 - user68186
5个回答

使用您的currentusername登录,打开终端并输入:
sudo passwd root

输入一个root账户的密码,然后注销,按下Ctrl+Alt+F1打开文本控制台,以root身份登录(用户名:root,密码:“你上面输入的那个密码”),然后运行:
usermod -l newusername -m -d /home/newusername currentusername
exit

按下Ctrl+Alt+F7 返回图形控制台并以newusername登录。

要更改用户的显示名称(显示在登录屏幕上的名称),请转到系统设置 -> 用户帐户,然后单击对话框右侧的显示名称。

enter image description here


用户oldname当前已登录 - Fazlan
答案已更新。 - Eric Carvalho
我按照您的指示进行操作,确实成功更改了用户名。如果我在Nautilus中查看“计算机”->“主目录”,只能看到新的用户名。但仍有一点奇怪的是,当我从关机状态启动时,登录界面上仍然显示原始用户名。原始用户名还存储在哪里呢? - Ilan
@Ilan的回答已更新。 - Eric Carvalho
Ctrl+Alt+F1不起作用 - June Wang

你需要从恢复模式下执行这个操作。
重新启动,选择恢复模式,然后进入根控制台并在那里输入命令。然后再次正常重启。

第一个简单的解决方案是创建一个新用户,使用你想要的正确用户名,并将其添加到管理员组:/etc/sudoers 另一种方法是使用你的旧用户名(我在Fedora上测试过):
# usermod -l new-username old-unername

1在Ubuntu中,您可能需要在那行代码前添加sudo,像这样:sudo usermod -l new-username old-unername - user68186
用户名已更改,但文件夹名称仍为旧名称。 - Fazlan
#: 表示你拥有根权限,而 $: 表示你只是一个普通用户。 - Bacara

我会创建一个新账户,并将您的所有文件复制过去。这可能是最傻瓜式的方法。

改变用户名会导致不可避免的问题。许多程序将尝试从不存在的旧目录中读取和写入数据。创建一个新账户并复制所有旧文件夹似乎是个好主意。我相信还有其他问题。
但这回答了之前的评论没有帮助我的问题。
简单地以root身份重新登录可能行不通,因为我的旧用户名有活动进程。所以我像其他人说的那样,重启进入恢复模式。但然后我得到了原帖提到的错误信息。正如在这里发现的那样,这是因为恢复模式下驱动器是只读的,所以你必须将其设置为可读写。
修复总结:
sudo passwd root # assign a password
reboot  # into recovery mode and log in as root

在启动时按住Shift键,如果您的grub菜单没有设置为显示。 以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

正如其他地方所说,当您更改用户名时,请预料到会遇到问题,因为许多程序会尝试在您旧的用户名文件夹中查找或存储应用程序数据,而这些数据已经不存在了。