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