Когда вы предоставляете двойной дефис, опыт, который вы получите, будет таким же, как если бы вы только что казнили 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 -l
I мог выполнить/bin/su
с NOPASSWD)