Na prática, ambos farão de você o superusuário. No entanto, eles fazem coisas ligeiramente diferentes, de maneiras ligeiramente diferentes.
Primeiro, su -
muda você para um shell de login, enquanto sudo -s
não. Na prática, isso geralmente significa que suas variáveis de ambiente não serão alteradas para root
para sudo -s
. Observe que você pode executar apenas su
para não obter um shell de login ou sudo -i
para obter um shell de login [não em todas as versões].
Em segundo lugar, su
e su -
mudam para um novo usuário solicitando sua autenticação como novo usuário. sudo -s
e sudo -i
(e apenas sudo foo
regular) permitem executar um comando para o qual você é pré-autorizado [ver /etc/sudoers
], possivelmente pedindo para confirmar sua atual ID.
Se você quer ser realmente fofo, você também pode executar sudo su -
, que solicitará o login como root ( su -
) executado pelo usuário root (a parte sudo
).
Se o usuário root estiver bloqueado (como no Ubuntu), você não poderá fazer login como root usando su
. Nesse caso, você precisará usar sudo -s
ou sudo -i