Por que recebo “Permission denied” ao redirecionar a saída do sudo echo “xyz” para um arquivo? [duplicado]

4

Por que recebo

-bash: test: Permission denied

quando eu corro

sudo echo "xyz" > test

As permissões do diretório são:

drwxr-xr-x 3 root root 4096 2014-08-05 16:26 

Não tenho nenhum problema em criar um arquivo no diretório usando sudo . Mas por que eu não posso fazer eco nele?

    
por amphibient 05.08.2014 / 22:31

1 resposta

10

Isso acontece porque você só está executando o comando echo como root. O redirecionamento de saída é tratado pelo seu shell (não raiz). Para evitar isso, não use o redirecionamento do shell e use um comando real para manipular a escrita: tee . O que você quer fazer pode ser feito assim:

echo "xyz" | sudo tee test > / dev / null

(se você não redirecionar a saída, o tee irá gerar xyz para stdout também)

    
por 05.08.2014 / 22:41