sudoはstdoutを/etc/fileにリダイレクトできませんが、sudo 'nano'または 'cp'はなぜできますか? [コピー]

sudoはstdoutを/etc/fileにリダイレクトできませんが、sudo 'nano'または 'cp'はなぜできますか? [コピー]

リダイレクトを使用して次のコマンドを使用するsudoとエラーが発生するのはなぜですか?

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

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

...しかし、エディタを使用するときcp...
これまでこれを試したことがないため、システムに問題があるかどうか、これが正常かどうかはわかりません.普段は少し制限的なように見えますが(?)意図的に制限的なものかもしれません...(Ubuntuを使用)

答え1

これは正常です。後続のファイルは、その>ファイルで実行されているプロセスによって開かれず、sudoシェルによって開かれません。この試み:

printf "foo" | sudo tee /etc/file

関連情報