su Command: Tutorial & Examples
Switching user accounts
su command, short for substitute user, is a command-line utility in Linux that allows you to switch from one user
account to another without logging out and back in. This command is often used by system administrators to perform tasks
as the root user, but it can also be used to switch to any other user account on your system.
Why is the su Command Important?
su command is important because it provides an efficient way to perform tasks that require different user
permissions. For instance, a system administrator might need to edit a system file owned by the root user, or a
developer might need to test a script as a different user. Instead of logging out and logging back in as the desired
user, you can use the
su command to switch users in the same shell session.
It can help to solve certain problems like incorrect file permissions or application testing.
Basic Usage of the su Command
The basic syntax of the
su command is
su [options] [username]. If no username is given, the command assumes you want
to switch to the root user. To switch to another user, you provide the username as an argument.
This prompts you for the root password. If you enter it correctly, you get a root shell.
This prompts you for the password of the user 'john'. If you enter it correctly, you get a shell as user 'john'.
Common Parameters for the su Command
su command has several parameters that modify its behavior:
--login: These options start a login shell after switching the user. A login shell resets most environment variables, providing a clean base.
--command: This option runs the command specified in the argument, then exits. It's useful for running a single command as another user.
su - john -c 'whoami'
In this example, the
whoami command is run as user 'john', and then the su command exits.
Understanding the Output of the su Command
su command does not have a typical output, as it's primarily used to switch users in the shell. However, it will
prompt for a password and may print an error message if the password is incorrect or the user does not exist.
su: user non_existent_user does not exist
In this case, the
su command attempted to switch to a user that does not exist, and therefore printed an error
Understanding and using the
su command is essential for efficient Linux server management. It allows you to quickly
switch between users and perform tasks with different permissions, without the need to log out and back in. Whether
you're a system administrator or a developer, the
su command is a powerful tool in your Linux toolkit.