How to change administrator username?

I have accidentally typed my name wrong when I created the administrator account. Although I managed to change the user name at the login screen, I am unable to rename the /home/oldusername to /home/newusername. I tried most of the online tutorials, and it failed.

The code I tried was this:

usermod -l newusername -m -d /home/newusername oldusername

But the output is:

cannot lock /etc/passwd; try again later.

How can I fix the issue and change the folder to newusername and expect all the applications to work as before?


Solution 1:

Login with your currentusername, open a terminal and type:

sudo passwd root

Enter a password for the root account, then logout, press Ctrl+Alt+F1 to open a text console, login as root (username: root, password: "the one you typed above") and run:

usermod -l newusername -m -d /home/newusername currentusername
exit

Press Ctrl+Alt+F7 to return to graphic console and login as newusername.

To change the user's display name (the one that appears at the login screen), go to System Settings -> User Accounts then click the display name on the right-hand side of the dialog.

enter image description here

Solution 2:

You need to do this from recovery mode.

Reboot, choose recovery mode, and then drop to a root console and type the command there. Then reboot again as normal.

Solution 3:

The first simple solution that you can do is to create a new user with the right username that you want and add it to the administrator group: /etc/sudoers

other way, you can do that with your old username (I tested it on fedora):

# usermod -l new-username old-unername

Solution 4:

I would create a new account, and copy all of your files across. This is probably the most idiot-proof method.