53

I understand what su - does

  • logs you into root with the root environment
  • (as opposed to su which logs you into root with your environment)

And I understand what sudo does

  • you are root for one command

But I am unsure what this does: sudo su -

Anyone care to clarify

1
  • What do you mean by environment?
    – wizzfizz94
    Jun 4, 2020 at 3:03

3 Answers 3

67

In addition to what you said, su requires the root password and sudo requires your user password

Therefore sudo su - will put you into a root environment but it will ask you for your user password instead of the root password (once sudo has given you root privileges, su - can be executed with no password).

3
  • 1
    +1 good explanation. If I config my sudo can I make it not require a password? That would made su require 'no password'? Feb 8, 2010 at 14:46
  • 1
    clear explanation Jul 9, 2014 at 8:10
  • 8
    note that sudo -i is a somewhat more direct way of doing the same thing
    – Sam Mason
    Jul 12, 2014 at 11:42
7

If you are allowed (configuration of sudo) to use the su command, it asks you for your password and then logs you in as root.

4

Short answer: you will get a root shell.

Long answer: it is different from doing 'su -' within a root shell. Once you exit (eg., Ctrl-D) from 'sudo su -', the execution of sudo will end.

Observed on Debian Wheezy with htop:

'sudo su -' has a child of 'su -', and 'su -' has a child of '-su'.

As mentioned above, root user can do 'su -' without entering password, so doing 'su -' inside of a root shell, you will have two different root shell processes. ending the inner one will let you return back to the outer one.

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.