Existem duas perguntas:
- Diferença entre
su - username
esu username
Se -
(ou -l
) for especificado, su
simula um login real. O ambiente é limpo, exceto algumas poucas variáveis selecionadas ( TERM
notavelmente, DISPLAY
e XAUTHORITY
em alguns sistemas). Caso contrário, o ambiente é deixado como está, exceto por PATH
que foi redefinido.
- Diferença entre passar sem nome de usuário e especificar
root
Isso pode depender do sistema. No Linux com shadow
como o pacote que fornece su
, se nenhum nome de usuário for especificado, então su
first tenta ver se o usuário root
possui uma entrada passwd
. Se isso acontecer, ele usa isso. Se não, ele tenta uid
0.
Não tenho certeza sobre outros sistemas operacionais semelhantes ao Unix.