2

Я на OSX. Можно использовать как login(1), так и su(1), чтобы войти под любым пользователем.

Но два двоичных файла, чтобы сделать ту же работу ??

Какой из них потребляет меньше системных ресурсов?

Какой из них менее подвержен угрозам безопасности?

Какие отличия под капотом?

[Примечание, я не против получить root-доступ. Я просто планирую автоматизировать доступ к учетным записям в многопользовательском сетевом * nix. ]

3 ответа3

2

su(1) создаст новую оболочку с текущей средой, и как только вы выйдете из подоболочки, вы вернетесь к вызывающей оболочке.

login(1) тоже создаст новую оболочку, но с новой средой.

0

Это не совсем та же работа. "su" просто меняет пользователя, которому принадлежит текущий терминал, "login" (как следует из названия) создает новый сеанс.

Я не эксперт по OSX, но во всех * NIX важен вопрос безопасности - запретить удаленный прямой вход в систему для root. Это должно быть сделано только с помощью "su" после входа в систему как обычный пользователь.

0

login запускает оболочку с новой средой, отбрасывая текущую.

su запускает оболочку, используя существующую среду, и изменяет только переменные HOME, USER и SHELL.

Например,

> export foo=bar
> su <username>
> echo $foo
bar

но:

> export foo=bar
> login <username>
> echo $foo

ничего не печатает.

AFAIK, su -l эквивалентен login .

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