Há pouca diferença nos pares de comandos sobre os quais você está se perguntando.
O primeiro par tenta simular um novo login como novo usuário - pode haver alguma diferença nas variáveis ambientais fornecidas, pois sudo su -
tentará preservar as variáveis ambientais existentes, enquanto sudo -i
definirá muito variáveis ambientais específicas e tira todas as outras (verifique suas páginas de manual para detalhes).
Para o segundo par, a diferença de comportamento é a seguinte: sudo su
sempre iniciará o shell listado no usuário /etc/passwd
, enquanto sudo -s
verificará primeiro a variável SHELL
do ambiente e só executará o shell em /etc/passwd
se SHELL
não estiver definido.