Я вижу, что su - делает оболочку оболочкой входа в систему из su --help . Мне любопытно, в чем разница между этим и обычной командой su .
Я знаю, что, кажется, есть разница в путях, какие-то другие различия или это почти единственная разница?
AFAIK su - имитирует новый вход в систему, поэтому запускает все, что связано с входом в систему, в то время как su просто переключает пользователя в root.
Разница, с которой я обычно встречаюсь, - это разница в переменных среды. Су - изменить среду, Су нет. Например: "su -" может дать другой путь, доступ к другим инструментам, Может дать другой дом с другой конфигурацией (~/.ssh!/.Xauthority и т.д.)
Исходные файлы оболочки ~/.profile, если они существуют. Следовательно, это действительно зависит от того, что у вас есть в вашем ~/.profile?
Обычно это различия в переменных среды, такие как PATH или приглашение (переменная среды PS1), но, очевидно, могут быть и другие различия. Это действительно зависит от того, что вы положили в свои скрипты конфигурации оболочки.
от man su
-, -l, --login
make the shell a login shell
поэтому следующий вопрос - что такое оболочка входа в систему и чем она отличается от оболочки без входа в систему.
В man bash под INVOCATION вы можете прочитать длинную и педантичный секцию, которая сводится к чему - то вроде: войти оболочка запускает файл profile (ы) (например , /etc/profile и т.д. / профиль и ~/.bash_profile , а интерактивные без входа пробегов оболочки файлы bashrc .