What if you could switch users instantly without logging out and losing your place?
Why su (switch user) in Linux CLI? - Purpose & Use Cases
Imagine you are working on a shared computer where you need to perform tasks as different users. You have to log out and log back in every time you want to switch users to run commands or access files.
This manual method wastes time and interrupts your workflow. Logging out and back in repeatedly is slow and frustrating. It also increases the chance of mistakes, like forgetting to save work or closing important programs.
The su command lets you switch users instantly within the same session. You can run commands as another user without logging out, saving time and reducing errors.
logout
login as another user
run commandssu username run commands as that user exit # to return
You can quickly and safely switch user identities to manage tasks without interrupting your work.
A system administrator needs to switch to the root user to install software, then switch back to their regular user to continue daily work--all without logging out.
Manually switching users by logging out is slow and error-prone.
su lets you switch users instantly in the same session.
This saves time and keeps your workflow smooth and safe.
Practice
su command do in Linux?Solution
Step 1: Understand the purpose of
Thesusucommand is used to switch from the current user to another user in the terminal.Step 2: Compare options
Updating system packages uses apt or yum, showing user's groups uses 'groups', displaying directory contents uses 'ls'. These are unrelated to user switching.Final Answer:
Switches the current user to another user -> Option CQuick Check:
su= switch user [OK]
- Confusing su with commands like ls or groups
- Thinking su updates software
- Assuming su shows files
alice and load her full environment?Solution
Step 1: Recall the syntax for full environment loading
Usingsu - usernameswitches user and loads their full environment.Step 2: Check options
su alicechanges user without full environment,su --user aliceuses invalid flag,su /aliceis invalid syntax.Final Answer:
su - alice -> Option AQuick Check:
Use dash (-) to load full environment [OK]
- Omitting the dash (-) to load environment
- Using wrong flags like --user
- Adding slashes before username
su - bob and enter the correct password?whoami
Solution
Step 1: Understand what
This command switches the current user to 'bob' and loads his environment after password verification.su - bobdoesStep 2: Check the output of
After switching,whoamiwhoamishows the current active user, which will be 'bob'.Final Answer:
bob -> Option DQuick Check:
After su, whoami = new user [OK]
- Expecting root instead of target user
- Thinking it shows original user
- Assuming permission denied without password
john using su john but get the error: Authentication failure. What is the most likely cause?Solution
Step 1: Understand the error message
Authentication failuremeans the password entered was incorrect for the target user.Step 2: Analyze other options
User existence error would say 'unknown user'. Using sudo is not required for su. You do not need to be root to switch users if you know the password.Final Answer:
You entered the wrong password for john -> Option AQuick Check:
Authentication failure = wrong password [OK]
- Assuming user does not exist
- Thinking sudo is required for su
- Believing only root can switch users
deploy without fully switching to their environment. Which command is best to use?Solution
Step 1: Understand running commands as another user
Usingsu username -c 'command'runs the command as that user without opening a full shell.Step 2: Check options for correct syntax
su -c deploy ./script.shwrong flag order,su - deploy ./script.shstarts login shell,su deploy ./script.shstarts non-login shell. Onlysu deploy -c './script.sh'runs directly.Final Answer:
su deploy -c './script.sh' -> Option BQuick Check:
Use -c to run command as user [OK]
- Placing - before username incorrectly
- Omitting -c flag for command
- Confusing argument order
Ready to prove it?
Pass the test and this pattern moves unknown
