4

Я вижу, что su - делает оболочку оболочкой входа в систему из su --help . Мне любопытно, в чем разница между этим и обычной командой su .

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

4 ответа4

3

AFAIK su - имитирует новый вход в систему, поэтому запускает все, что связано с входом в систему, в то время как su просто переключает пользователя в root.

2

Разница, с которой я обычно встречаюсь, - это разница в переменных среды. Су - изменить среду, Су нет. Например: "su -" может дать другой путь, доступ к другим инструментам, Может дать другой дом с другой конфигурацией (~/.ssh!/.Xauthority и т.д.)

1

Исходные файлы оболочки ~/.profile, если они существуют. Следовательно, это действительно зависит от того, что у вас есть в вашем ~/.profile?

Обычно это различия в переменных среды, такие как PATH или приглашение (переменная среды PS1), но, очевидно, могут быть и другие различия. Это действительно зависит от того, что вы положили в свои скрипты конфигурации оболочки.

0

от man su

   -, -l, --login
          make the shell a login shell

поэтому следующий вопрос - что такое оболочка входа в систему и чем она отличается от оболочки без входа в систему.

В man bash под INVOCATION вы можете прочитать длинную и педантичный секцию, которая сводится к чему - то вроде: войти оболочка запускает файл profile (ы) (например , /etc/profile и т.д. / профиль и ~/.bash_profile , а интерактивные без входа пробегов оболочки файлы bashrc .

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