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
login
inicia um shell com um ambiente novo, descartando o atual.
su
inicia 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.