Mastering User Removal in Linux: A Beginner’s Guide to Using userdel Command

userdel-command-to-remove-a-user-in-Linux-step-by-step-guide

Why do you want to remove a user in Linux? It’s up to you, but you can use userdel command to delete a user in Linux with or without a home directory. userdel command belongs to RHEL, CentOS, Fedora, etc. but it is a low-level utility in Debian based operating systems such as Ubuntu, Debian, etc. You can use the deluser command there as well.

Basically I want to explain that userdel command in the Linux system is used to remove a user account and related files.

This command basically modifies the system account files, deleting all the entries which refer to the username LOGIN.

As you know Linux is a multi-user system, which means more than one user can use the same Linux system at the same time.

If you are working in an organization as a system administrator, then you have the responsibility to manage the system’s users and groups.

I have described in another article how to create a user in the Linux system and how to list users in Linux and how to add a user in the sudo group etc. This article only related how to delete a user in the Linux system with userdel command.

The basic syntax of userdel command

Always remember the user login, It may differ from the user name, For example, my User Name “Vijay Kumar” but this is not user login. My user login is vijay. It’s the only vijay.

You can use command whoami to see the current login, I have described in details on how to list user in Linux.

You can find the basic syntax of userdel command as follows:

userdel [OPTIONS] USER LOGIN

For more details on options used with userdel command, you can use following syntax:

#userdel -h

[root@localhost ~]# userdel -h
Usage: userdel [options] LOGIN

Options:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    display this help message and exit
  -r, --remove                  remove home directory and mail spool
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -Z, --selinux-user            remove any SELinux user mapping for the user

[root@localhost ~]# 

You can also use the man command to display the manual page of userdel command.

#man userdel

How to remove a user in Linux using userdel command

First I am going to have a look on users in my Linux system. It’s really very easy to know how many users are exist on your system.

When you create a user, the home directory with username has been created in /home folder automatic.

The first and simplest way for you to know existing user in Linux machine. So run the following command to get list of users:

#ls /home

[root@localhost ~]# ls /home/
student  student1  student2  vijay
[root@localhost ~]#

In the above example there are 4 users in my system. First, I want to show you that student user is active or not. I will use ‘su command’ and ‘whoami’ command to know the logged in user.

[root@localhost ~]# su student
[student@localhost root]$ whoami
student
[student@localhost root]$ exit
exit
[root@localhost ~]# whoami
root
[root@localhost ~]# 

I am willing to remove user login name “student”. So I will run the following command

#userdel student

[root@localhost ~]# userdel student
[root@localhost ~]# su student
su: user student does not exist
[root@localhost ~]# ls /home/
student  student1  student2  vijay
[root@localhost ~]# 

See close to the above example, I have deleted user ‘student’ then try to switch to student and get error “su: user student does not exist”.

But you can see home directory of user ‘student’ still exist in /home directory. So If you just want to remove user account with its home directory go to the next section.

Remove user in Linux with its home directory

Whenever You are deleting a user using this option then the files in the user’s home directory will be removed along with the home directory itself and the user’s mail spool.

All the files located in other file systems will have to be searched for and deleted manually.

If you want to remove user account with its home directory then you will use userdel command followed by -r option:

[root@localhost ~]# userdel -r student1 
[root@localhost ~]# su student1
su: user student1 does not exist
[root@localhost ~]# ls /home/
student  student2  vijay
[root@localhost ~]# 

In the above example, I have deleted user ‘student1’ along with home directory. I have tried su command to switch student1 got error.

Again I had a look on home directory of student1, but it did not exist after deleting user.

Remove user in Linux, if multiple user using same home directory.

In the some cases, we assigned single home directory for multiple users. Both users are not only access home directory even mail spool as well.

So you must use to remove userdel command followed by -f option.

This option forces the removal of the specified user account. It doesn’t matter that the user is still logged in.

It also forces the userdel to remove the user’s home directory and mail spool, even if another user is using the same home directory or even if the mail spool is not owned by the specified user.

#user -f [username]

userdel command with -R Option

This option apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

#userdel -R [username]

userdel command with -Z :

This option remove any SELinux(Security-Enhanced Linux) user mapping for the user’s login.

#userdel -Z [username]

Conclusion:

You have learned about userdel command in Linux, which is used to remeve user in Linux with or without its home directory.

If I have missed something please leave comment below.

For more information about the userdel command, check the man page.

If you like our content, please consider buying us a coffee.
Thank you for your support!