EDITADO. Nota: Esta resposta foi strongmente editada desde a sua última iteração com base nos comentários de Eliah Kagan.
sudo -i executa um shell de login com privilégios de root, simulando um login inicial com root, agindo de forma semelhante a su - . A principal diferença entre sudo -i e su - é que sudo -i pode ser executado usando a senha de um sudo, enquanto su - deve ser executado com a senha da conta raiz. Portanto, se você estiver em uma instalação padrão do * buntu, em que o login da raiz está desabilitado, sudo -i pode ser usado enquanto su e suas variantes não podem.
Se você executar os seguintes comandos:
$ sudo -i
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
você receberá a saída:
/root
Assim, você pode ver que sudo -i simula um login raiz inicial, incluindo a alteração da pasta pessoal ( $HOME ) para raiz, em vez da sua própria. Isso também significa que sudo -i lê arquivos de login como .profile .
Enquanto isso, sudo -s inicia um novo shell, mas sem simular login inicial - os arquivos de login não são lidos e $HOME ainda está definido para a pasta inicial do usuário .
Se você executar os seguintes comandos:
$ sudo -s
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
você receberá a saída:
/home/<username>
A partir disso, você pode ver que sudo -s não não simula um login inicial e não altera $HOME .