when must you login as this root in Ubuntu (or Linux)? Is it just to avoid typing
sudoon commands requiring root privilege?
A minha interpretação das suas perguntas é:
- Há cenários em que você deve usar
sudo -iporquesudonão é suficiente? - Ou
sudo -ié apenas para evitar digitarsudovezes sem conta, mas não dá outra vantagem?
A principal vantagem de sudo -i é que ele inicia um shell. Você pode então usar pipes, redirecionamentos, etc. como root. Considere:
sudo dd if=/dev/sdc conv=noerror bs=32M | pv | gzip -c > /root/image.raw.gz
Nesse caso, sudo afeta apenas dd . Enquanto você está solicitando sua senha, pv já está em execução, seu monitor fica confuso. Ao mesmo tempo, seu shell informa que você não tem acesso a /root/image.raw.gz , apesar de usar sudo ; isso ocorre porque o redirecionamento ( > ) é executado pelo shell que está sendo executado sem sudo .
Existem várias técnicas para contornar esses obstáculos. A lista a seguir provavelmente não é exaustiva:
- Execute
sudo trueantes e insira sua senha. Seusudonão solicitará você novamente em alguns minutos, a menos que esteja configurado de outra forma. -
Use
sudo teeda seguinte forma:sudo dd if=/dev/sdc conv=noerror bs=32M | pv | gzip -c | sudo tee /root/image.raw.gz > /dev/null -
Ou execute o comando dentro de um shell extra:
sudo bash -c 'dd if=/dev/sdc conv=noerror bs=32M | pv | gzip -c > /root/image.raw.gz' -
Ou execute este shell extra e trabalhe nele:
sudo bashousudo -i(ambos os comandos não são bem equivalentes).
Então, você realmente não precisa de -i . Pode não existir, você ainda seria capaz de fazer as coisas como root.
Outra vantagem pode ser que sudo -i executa um shell que origina os arquivos da raiz (como .profile ), enquanto sudo bash ou sudo bash -l usa os arquivos do usuário invocador. Eu posso imaginar que um pode ter um ambiente definido para raiz, adaptado para tarefas administrativas. Nesse caso, sudo -i é útil.
Os perigos de trabalhar em um shell executando com privilégios de root são cobertos por outras respostas. Eu não vou repeti-los.