How to switch user on Linux

Linux is a multi user operating system, meaning that it supports having multiple simultaneous user accounts. Some Linux systems may have a few different accounts, and others could have hundreds, depending on the purpose of the system. Switching between user accounts is a common task for Linux administrators who are in charge of user account management, as it allows them to test permissions or troubleshoot problems.

In this tutorial, you will learn how to switch user accounts on Linux. You will either need to have the necessary credentials to log in as the other user (username and password), or have administrative access to the system via the root user. We will go over both scenarios below.

In this tutorial you will learn:

  • How to view a list of user accounts
  • How to switch to a different user account
  • How to switch to the root user account
  • How to execute a command as a different user
  • How to switch user via GUI
How to switch user on Linux
How to switch user on Linux
Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Any Linux distro
Software N/A
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

How to Switch Between User Accounts on Linux



Listing Users

Let’s start by listing the user accounts that are already created on our system. You do not need root permissions for this command, as any user is able to view all configured accounts.

$ cat /etc/passwd

The user names are listed in the first field of each line.

Listing all users on the system by viewing the /etc/passwd file
Listing all users on the system by viewing the /etc/passwd file
DID YOU KNOW?
Many system services, such as SSH or MySQL, will create their own user accounts upon installation. This is to facilitate various system functions that are required for the services to run. These system accounts are ordinarily not meant to be accessible by people, and will point to an unusable shell by default.

We are able to log in to any of the users you see inside of the /etc/passwd file, provided we know their login credentials, and while keeping the aforementioned caveat in mind.

Log in to a Different User (as a normal user)

Now that we know which user we want to log in as, we can execute the following command. We will attempt to log in to the testuser user account in this example:

$ su testuser

We will then be prompted for the password of the testuser account.

Successfully logging in as a different user on Linux
Successfully logging in as a different user on Linux

You can see in the screenshot above, that after providing the password for testuser, we run the whoami command to verify that we have successfully logged in as the other user:

$ whoami
testuser


Log in to a Different User (as root)

If you are already logged into the root user account, then logging into another user is really simple. You do not need to know the user’s password. As a matter of fact, the user does not even need to have a configured password at all. Since you are root, you can still log into the account regardless.

We will use the same syntax as before:

# su testuser

$ whoami
testuser

If, instead, you typically use the sudo command to execute commands as root, then we can use this syntax:

$ sudo su testuser
[sudo] password for linuxconfig:

$ whoami
testuser

Notice that this time we are prompted for our sudo password, rather than the password for the user account that we are trying to access.

Execute Command as Different User

What if we want to execute a command as a different user, without going through the whole process of having to switch to that user account, and then switch back when done? In that case, we can use this syntax, which will execute the echo command with our testuser account.

$ sudo -u testuser bash -c 'echo "I am $USER"'
I am testuser

How to Switch User via GUI

From GUI, you can switch to a different user via your desktop environment’s lock screen. You will need to log out of your current user, and then log in to the other user by typing their account credentials on the lock screen:

Logging into a different user from the GNOME lock screen in Linux
Logging into a different user from the GNOME lock screen in Linux

Closing Thoughts




In this tutorial, we saw how to switch user accounts on a Linux system. User accounts provide a separation of resources and files on a shared system, or can be configured to facilitate certain system services. Whatever the case, being able to switch between accounts swiftly is a useful skill that all Linux administrators should have.



Comments and Discussions
Linux Forum