fundo
No Linux (e Unix em geral), existe um superusuário chamado Root . O superusuário pode fazer tudo e qualquer coisa e, portanto, fazer o trabalho diário como superusuário pode ser perigoso. Você pode digitar um comando incorretamente e destruir o sistema. Idealmente, você executa como um usuário que possui apenas os privilégios necessários para a tarefa em questão. Em alguns casos, isso é necessariamente raiz, mas na maioria das vezes é um usuário comum.
su -
Este comando é usado para efetuar login na conta raiz.
Por padrão, a senha da conta Raiz está bloqueada no Ubuntu. Isso significa que você não pode efetuar login diretamente como root ou usar o comando su para se tornar o usuário raiz. No entanto, como a conta raiz existe fisicamente, ainda é possível executar programas com privilégios no nível raiz. É aqui que o sudo entra - ele permite que usuários autorizados (normalmente usuários "Administrativos") executem certos programas como Root sem precisar saber a senha do root.
Consulte Como ativar a conta raiz .
sudo sh
Este comando executa "sh" como um super usuário.
O utilitário sh é um intérprete de linguagem de comando que deve executar comandos lidos a partir de uma sequência de linhas de comando, da entrada padrão ou de um arquivo especificado.
sudo bash
Este comando executa "bash" como um super usuário.
Bash é o shell ou intérprete da linguagem de comandos. O Bash é um shell compatível com sh que incorpora recursos úteis dos shell Korn (ksh) e C (csh). Ele se destina a estar em conformidade com o padrão IEEE POSIX P1003.2 / ISO 9945.2 Shell e Ferramentas. Oferece melhorias funcionais sobre sh para programação e uso interativo. Além disso, a maioria dos scripts sh pode ser executada pelo Bash sem modificação.
Referências: 1 , 2 , 3 .
sudo su -
sem uma senha root. Como o sudo executa osu -
comando com permissões de root, a senha do usuário será solicitada apenas. Isso tem a vantagem de configurar o ambiente do usuário raiz, o que não pode ser feito simplesmente executando um shell com o sudo.