Respostas:
Eu acho que sudo -s
nã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 .Xauthority
arquivo, 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 -s
não mudará suas variáveis de ambiente, principalmente $HOME
, as que permanecerão HOME=/home/USER
. Se você usar, sudo su
isso mudará para o HOME=/root
que pode ter efeitos colaterais negativos quando os programas iniciados tentam acessar o diretório pessoal do usuário.
Então, basicamente, é como sudo
vs gksudo
ao executar programas gráficos.
Além das diferenças já mencionadas nas variáveis de ambiente, acho sudo su
bobo e inútil porque você está pedindo sudo
para executar su
como 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 su
para 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 -i
mudará para o /root
diretório e sudo su
permanecerá 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 -i
ousudo 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/...