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

관련 정보