The su command is also known as switch user. This command is used to become another user during a login session. When invoked without a username, su defaults switch to the superuser. Basically, the su command is used to change the currently logged-in user to another user without logging out from the system.
It is a frequently used command mostly by Linux terminal users. This tutorial will help you understand the uses of the Linux su command with examples.
su [OPTIONS] [USER] [OPTIONAL ARGS...]
su Command Examples in Linux
Let’s begin with a basic example. I’m Logged in to my system with user ‘root’, verified the identity using whoami command.
Then switch to root user with su command. Again verified the identity.
su - root whoami
Things to Know:
- Invoke the su command without username becomes the superuser (root).
- Using hyphen (-) with switching invoke login shell scripts. This is used to provide an environment similar to what the user got at direct login
- The current environment is passed to the new shell with effective environment variables to switch users.
The sudo privileged users can also prefix sudo with su command. like:
sudo su - root
Sometimes, you may only need to switch user to run a single or few commands only. In that condition, su provides you
-c the option to run the command as another user without actually switching the shell.
su - root -c "whoami"
“su” Command Line Options
Linux su command has only a few but very useful options. These options are very useful while automating tasks with shell scripts.
-c, --commandUse this option to pass command to the invoked shell. With the help of this, you can run the command as another user.
-, -l, --loginmake the new shell a login shell. So all the environments will be set as similar to users logged-in directly.
-s, --shellChange the default SHELL that is specified in “/etc/passwd” file.
-m, -p, --preserve-environmentUse this option to preserve environment variables, This is helpful while running the command temporarily as another user.
For “su” command help page use the below command.
For “su” command manual page use the below command.