В чем разница между sudo su - и sudo su -

22

Когда я работаю на наших машинах RHEL, я использую, sudo su -чтобы перейти в режим root. Однажды опечатка означала, что я напечатал sudo su --вместо этого - мне кажется, что все было так же, как с одним дефисом, за исключением того, что я находился в той же папке, что и до того, как выполнил команду (с одним дефисом, в котором я оказался /root).

Есть ли другие различия? Безопасно ли использовать это в сценариях, где я знаю, что хочу работать в том же каталоге?

Богатый
источник

Ответы:

22

Когда вы предоставляете двойной дефис, опыт, который вы получите, будет таким же, как если бы вы только что казнили sudo suбез дефиса.

Передача одного дефиса идентична прохождению -lили --login. Страница suруководства для описывает поведение как:

Создайте среду, аналогичную той, которую пользователь ожидал бы при непосредственном входе в систему.

Это включает в себя установку вашего каталога в ваш домашний каталог и установку множества других переменных среды.

Передача двойного дефиса команде обычно используется для обозначения конца флагов командной строки и начала аргументов без флагов. Например, если вы запустите, touch -Rвы получите сообщение о том, что -R не является опцией touch, но если вы запустите touch -- -Rего, вы создадите файл с именем -R. Это верно для многих инструментов командной строки ( ls -Rбудет делать рекурсивный, lsтогда как ls -- -Rбудет выполнять lsнад файлом или каталогом с именем -R.

Итак, подвести итог, когда вы переходите только -- к suнему, в основном игнорируете --и действуете так, будто вы вообще не пропускаете никакой опции.

Марк Драго
источник
Я создам вопрос из этого, но так sudo su -и sudo su -lотличается. На счете где я SSH в только ключе, и у меня есть права на изменение SUDO к конкретному другому пользователю, sudo su -изменяет пользователь без проблем , но sudo su -lи sudo su --loginбудет запрашивать пароль SUDO, который у меня нет (хотя, рассматривая sudo -lI мог выполнить /bin/suс NOPASSWD)
karatedog
@karatedog, похоже, вы не создали вопрос ....
Wildcard