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