Я на OSX. Могу использовать обавойти(1)иливс(1)войти в систему как любой пользователь.
Но два двоичных файла для выполнения одной и той же работы?
Кто потребляет меньшесистемные ресурсы?
Какой из них менее склонен криски безопасности?
Которыйразличия под капотом?
[ Обратите внимание, я не против получения root-доступа. Я просто планирую автоматизировать доступ к аккаунтам на многопользовательском сетевом *nix. ]
решение1
login
запускает оболочку с новой средой, отбрасывая текущую.
su
запускает оболочку, используя существующую среду, и изменяет только переменные HOME, USER и SHELL.
Например,
> export foo=bar
> su <username>
> echo $foo
bar
но:
> export foo=bar
> login <username>
> echo $foo
ничего не печатает.
Насколько мне известно, su -l
эквивалентно login
.
решение2
su(1) создаст новую оболочку с текущей средой, и после выхода из подоболочки вы вернетесь в вызвавшую ее оболочку.
login(1) также создаст новую оболочку, но с новой средой.
решение3
Это не совсем одно и то же. «su» просто меняет пользователя, которому принадлежит текущий терминал, «login» (как следует из названия) создает новый сеанс.
Я не эксперт по OSX, но во всех *NIX-ах важным соображением безопасности является запрет на удаленный прямой вход в систему root. Это должно быть сделано только с помощью "su" после входа в систему как обычный пользователь.