Existem duas perguntas:
- Diferença entre
su - usernameesu 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.