35

Я понимаю, что su - делает

  • регистрирует вас в root с корневой средой
  • (в отличие от su который регистрирует вас как root в вашей среде)

И я понимаю, что делает sudo

  • вы болеете за одну команду

Но я не уверен, что это делает: sudo su -

Любой желающий уточнить

3 ответа3

51

В дополнение к тому, что вы сказали, su требует пароль пользователя root, а sudo ваш пароль пользователя.

Поэтому sudo su - поместит вас в корневую среду, но попросит ввести пароль пользователя вместо пароля root (как только sudo предоставит вам привилегии root, su - может быть выполнен без пароля).

7

Если вам разрешено (настройка sudo) использовать команду su , она запрашивает ваш пароль, а затем регистрирует вас как root.

2

Краткий ответ: вы получите корневую оболочку.

Длинный ответ: это отличается от выполнения 'su -' внутри корневой оболочки. Как только вы выходите (например, Ctrl-D) из 'sudo su -', выполнение sudo заканчивается.

Наблюдаемый на Debian Wheezy с htop:

'sudo su -' имеет дочернего элемента 'su -', а 'su -' имеет дочернего элемента '-su'.

Как упоминалось выше, пользователь root может делать 'su -' без ввода пароля, поэтому, выполняя 'su -' внутри корневой оболочки, вы будете иметь два разных процесса корневой оболочки. окончание внутреннего позволит вам вернуться к внешнему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .