Command: sudo su -

36

25

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

sixtyfootersdude

Posted 2010-02-05T22:15:54.730

Reputation: 6 399

2StackOverflow is for asking programming related questions. The site you're looking for (at least for this question) is SuperUser.com – None – 2010-02-05T22:18:10.267

Answers

54

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).

Tyler McHenry

Posted 2010-02-05T22:15:54.730

Reputation: 891

1clear explanation – Thiyagu ATR – 2014-07-09T08:10:38.560

5note that sudo -i is a somewhat more direct way of doing the same thing – Sam Mason – 2014-07-12T11:42:25.460

1+1 good explanation. If I config my sudo can I make it not require a password? That would made su require 'no password'? – sixtyfootersdude – 2010-02-08T14:46:50.013

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.

tangens

Posted 2010-02-05T22:15:54.730

Reputation: 1 230

2

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.

C.L.

Posted 2010-02-05T22:15:54.730

Reputation: 41