Celeb Glow
updates | March 14, 2026

What does "sudo -s" actually do?

I am using ubuntu 10.04.

I notice that after I run in terminal:

sudo -s

The prompt changed from:

my_user@my_hostname

to:

root@my_hostname

Seems it changed to root privilege.

But when I check the documentation of sudo command here, it explains another story of sudo -s, can anyone explain to me what is sudo -s doing exactly?

3

5 Answers

The two aren't really inconsistent - the sudo command always changes user, either to root, or to the user you specify with the -u switch. All the -s does is provide a shortcut for starting a shell as that user. It is really equivalent to:

sudo $SHELL

except that it will likely fallback to /bin/sh or something if SHELL is not set.

sudo -s runs the shell specified in your $SHELL environment variable as the superuser/root. You can specify another user using -u.

The $SHELL environment variable contains the path to the user's default login shell. The actual setting for the default shell program is usually in etc/passwd. Depending on what you've done in your current session, the $SHELL variable may not contain the shell program you're currently using. If you login automatically with zsh for instance, but then invoke bash, $SHELL won't change from /bin/zsh.

Show the current user and shell program:

echo $(whoami) is logged in and shell is $0
  • whoami prints out the username the user is working under.
  • $0 contains the name/path of the currently running program (shell program in this case).

From the manual:

sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.

-s Shell, runs the shell specified by the SHELL environment variable if it is set or the shell as specified in passwd(5).

More seriously, the sudo -s run a shell environment variable. Since you didn't add any variable it run as specified in passwd, and so connect you as root.

1

Have a look at this post from superuser:

What's the difference between the commands "su -s" and "sudo -s"?

By the way, your post should be moved to superuser (or askubuntu as said in comments)!

It sounds like it is creating another instance of the shell on top of the current shell, but with root privileges. I'll bet that after you do sudo -s if you type exit, you will go back to the original shell.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy