Por que o sudo não pode redirecionar o stdout para o / etc / file, mas o sudo 'nano' ou 'cp' pode? [duplicado]

14

Por que o redirecionamento, usando sudo , me causa um erro nos seguintes comandos?

$ sudo printf "foo" >/etc/file
bash: /etc/file: Permission denied

$ sudo printf "foo" ~/file; cat ~file >/etc/file 
bash: /etc/file: Permission denied

... ainda não tenho esse problema quando uso um editor ou cp .
Eu não acho que eu já tentei isso antes, então eu não sei se há algo errado no meu sistema, ou se isso é normal. Parece um pouco restritivo para ser normal, mas (?) Talvez seja destinado a ser restritivo ... (usando o Ubuntu)

    
por Peter.O 30.08.2011 / 02:16

1 resposta

24

É normal. O arquivo após o > não é aberto pelo processo em execução em sudo , mas pelo shell, o que não é. Tente isso:

printf "foo" | sudo tee /etc/file
    
por 30.08.2011 / 02:41