Respostas:
Eu acho que sudo -snão é "melhor", é apenas diferente.
sudo -s
mantém seu diretório $ HOME; portanto, quando você inicia os programas, eles usam seus arquivos de configuração (e não os da raiz) etc. Desvantagem: eles também podem alterar a propriedade dos seus arquivos no diretório $ HOME, exemplo típico é o .Xauthorityarquivo, mas eu nunca tive um problema com isso.
sudo su ou sudo -i
Os programas usarão o diretório inicial da raiz e seus arquivos de configuração. Isso pode ser mais intuitivo, mas também significa que não usará nenhuma configuração que você tenha definido (aliases, histórico do bash, ...).
Porque sudo -snão mudará suas variáveis de ambiente, principalmente $HOME, as que permanecerão HOME=/home/USER. Se você usar, sudo suisso mudará para o HOME=/rootque pode ter efeitos colaterais negativos quando os programas iniciados tentam acessar o diretório pessoal do usuário.
Então, basicamente, é como sudovs gksudoao executar programas gráficos.
Além das diferenças já mencionadas nas variáveis de ambiente, acho sudo subobo e inútil porque você está pedindo sudopara executar sucomo root e pede para executar um shell como root. Por que pedir a um programa que solicite a um programa um shell raiz, quando você pode apenas ter o primeiro programa desse shell? Isso importa em algum sentido prático? Não, eu sou apenas pedante.
sudo supara ser root, sim, basta ir sudo -i, por exemplo. Mas isso não ajuda quando você quer se tornar um usuário diferente: sudo su - myuser.
sudo -imudará para o /rootdiretório e sudo supermanecerá no diretório que você é.
sudo -u myuser,.
Discordo de outras respostas ao considerar os casos em que você deseja fazer login como um usuário que não possui um shell. Esse é um caso muito comum com usuários atribuídos a serviços.
O uso de "sudo su" iniciará o shell especificado pelo usuário. No entanto, no caso de um usuário atribuído ao processo do servidor, o shell é / usr / bin / false e o log falhará. Em vez disso, você deve inserir como:
sudo -sHu <server-user>
que fará o logon e o cd no caminho inicial, mesmo se o usuário não tiver um shell atribuído
sudo -iousudo sué melhor do quesudo -s, por motivos mencionados aqui: ubuntuforums.org/showpost.php?p=6188826&postcount=4 também: esta é uma possível duplicata de superuser.com/questions/29/...