Diferença entre executar o comando como sudo e executar o comando como root?

2

Eu sei que essa questão foi abordada em muitos contextos, mas não consigo entender e prever quando um usuário adicionado ao arquivo sudoers não terá permissão para fazer algo quando prepending sudo em um comando.

ubuntu@localhost$ ls -lh
-rw-r--r-- 1 root   root     10 Aug 11 11:21 test
ubuntu@localhost$ sudo echo 'something' >> test
-bash: test: Permission denied

ubuntu@localhost$ sudo su
root@localhost# echo 'something' >> test

Por que me foi negada permissão para executar o comando sudo echo 'something' >> test ?

    
por user784637 11.08.2013 / 14:31

1 resposta

2

Neste caso em particular, é porque echo é o comando com poderes de superusuário. A parte >> tem privilégios normais. Se você quiser escrever com poderes sudo, use

$ echo 'something' | sudo tee test

Assim, no seu caso, a versão anterior não é exatamente executada como sudo em sua totalidade. É isso que a diferença está aqui. No entanto, existem algumas diferenças reais entre o sudo e o login como root também, penso eu, envolvendo variáveis de ambiente.

    
por Sparhawk 11.08.2013 / 14:35