We might have come across a situation where we might want to rename user in Linux system, for whatever reasons. We can easily rename user in Linux & also we can rename the home directory or its UID as well.
In this short tutorial, we will be discussing these things only. Let's start by renaming user in Linux first,
(Recommended Read: How to use FIND command to locate anything in Linux)
Also Read: User & Group management : Complete Beginner’s Guide
Rename user in Linux
For renaming user in Linux systems, we will use 'usermod' command. Syntax for the command is,
$ usermod -l new_username old_username
For example, if we have a user named 'dan' & want to rename it to 'susan', execute the following command from terminal;
$ sudo usermod -l susan dan
This will only change the username & everything else, like group, home directory, UID will remain same.
Note:- You should need to logged out from the account you are trying to rename. You can also kill all the processes running for that user, to do so execute the following command,
$ sudo pkill -u dan
$ sudo pkill -9 -u dan
Renaming Home directory
For renaming home directory to correspond to the renamed user, we use '-d' option with 'usermod' command.,
$ sudo usermod -d /home/susan -m susan
Changing UID for the user
To change the UID of the user , execute the following command,
$ sudo usermod -u 2000 susan
where '2000' is the new UID for user.
Also Read: Granting SUDO access to a local user account in RHEL/CentOS
Renaming the group
To rename the group from 'dan' to 'susan', we will use 'groupmod' command. Use the following command to rename the group,
$ groupmod -n susan dan
To use a name that's already in use but you want to use it anyway, command would be,
$ groupmod -o -n susan dan
Once we have made the required changes, we can than check the changes made using the 'id' command,
$ id susan
With this we end this tutorial on how to rename user in Linux. Please let us know if you have any question or any issue or if you do have any suggestion, please do let us know that as well.
If you think we have helped you or just want to support us, please consider these :-
Connect to us: Facebook | Twitter | Google Plus
Donate us some of you hard earned money: [paypal-donation]
Linux TechLab is thankful for your continued support.
Did not quite work. Most did however the groupmod command follwoing your precise instructions resulted in an error.
groupmod: group ‘susan’ already exists
[root@think ~]# id susan
uid=1000(susan) gid=1000(dan) groups=1000(dan),10(wheel)
To use a name that’s already in use , command would be,
$ groupmod -o -n susan dan
Updated the same in article as well.
You may want to modify any files created by dan and have them now owned by susan (you’ll need the original UID for dan, we’ll assume 1990 in this example)
find / -uid 1990 -exec chown -h 2000 {} +
The group seems to have been renamed so the group id didn’t change… but if it had, you’d similarly need to change the group id for dan grouped files (the example below assumes dan’s old group id is 1005 and susan’s new group id is 1006)
find / -gid 1005 -exec chgrp -h 1006 {} +
Thanks for pointing it out. Certainly it benefit many.
Is there a particular reason for changing the UID? What if I don’t do it would that have unintended consequences?
You can use the same UID.
Thanks works just as advertised!
Rename the user and the homedir in one command works as well:
$ sudo usermod -l susan -d /home/susan -m dan
The only downside in renaming an user i noticed so far is that the associated crontabs are lost.