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?
Login with your
currentusername
, open a terminal and type: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:
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.
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.
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):
I would create a new account, and copy all of your files across. This is probably the most idiot-proof method.
Changing usernames will cause unavoidable problems. A lot of programs will try to read and write data from the old directory that's no longer there. Creating a new account and copying over all the old folders seems like a good idea. I believe there are other problems.
But this answers the question where the previous comments did not help me.
Simply logging back in as as root may not work because my old username had active processes. So I did like other's have said and rebooted into recovery mode. But then I got the error message the original poster mentions. As discovered here this is because the drive is read only in recovery mode so you have to make it read-write.
Summary fix:
Hold shift during boot if your grub menu is not set to show. Log in as root and get to shell.
Your old username will be the login name, but it will still let you in. To correct it, edit the file with the command below and look for the line that has your new and old username on the same line and change the old one to the new one:
As others have said in other places, expect problems when changing your username as many programs will try to do things like find or store application data in your old username's folder which isn't there anymore.