Terminal: login(1) ou su(1)?

Terminal: login(1) ou su(1)?

Estou no OSX. Pode usar amboslogin(1)ousu(1)para fazer login como qualquer usuário.

Mas, dois binários para fazer o mesmo trabalho??

Qual deles consome menosrecursos do sistema?

Qual deles é menos propenso ariscos de segurança?

Qualdiferenças sob o capô?

[Nota, não me importo de obter acesso root. Pretendo apenas automatizar o acesso a contas em um *nix multiusuário em rede. ]

Responder1

logininicia um shell com um ambiente novo, descartando o atual.

suinicia um shell usando o ambiente existente e modifica apenas as variáveis ​​HOME, USER e SHELL.

Por exemplo,

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

mas:

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

não imprime nada.

AFAIK, su -lé equivalente a login.

Responder2

su(1) criará um novo shell com o ambiente atual e, assim que você sair do subshell, retornará ao shell de invocação.

login(1) também criará um novo shell, mas com um ambiente novo.

Responder3

Não é exatamente o mesmo trabalho. "su" apenas altera o usuário que possui o terminal atual, "login" (como o nome diz) cria uma nova sessão.

Não sou especialista em OSX, mas em todos os *NIXes uma consideração importante de segurança é proibir o login direto remoto no root. Isso só deve ser feito por “su” após efetuar login como usuário comum.

informação relacionada