![sudo echo "xyz"의 출력을 파일로 리디렉션할 때 "권한 거부" 메시지가 표시되는 이유는 무엇입니까? [복사]](https://linux55.com/image/41232/sudo%20echo%20%22xyz%22%EC%9D%98%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%A0%20%EB%95%8C%20%22%EA%B6%8C%ED%95%9C%20%EA%B1%B0%EB%B6%80%22%20%EB%A9%94%EC%8B%9C%EC%A7%80%EA%B0%80%20%ED%91%9C%EC%8B%9C%EB%90%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
내가 왜 받나요?
-bash: test: Permission denied
내가 달릴 때
sudo echo "xyz" > test
디렉토리 권한은 다음과 같습니다:
drwxr-xr-x 3 root root 4096 2014-08-05 16:26
디렉토리에 파일 생성을 사용하는 데 아무런 문제가 없습니다 sudo
. 그런데 왜 sudo echo를 사용하여 들어갈 수 없나요?
답변1
echo
이는 루트로만 명령을 실행 하기 때문에 발생합니다 . 출력 리디렉션은 (루트가 아닌) 셸에서 처리됩니다. 이를 방지하려면 쉘 리디렉션을 사용하지 말고 실제 명령을 사용하여 쓰기를 처리하세요 tee
. 당신이하고 싶은 일은 다음과 같이 할 수 있습니다 :
echo "xyz" | sudo tee test > /dev/null
(출력을 리디렉션하지 않으면 표준 출력으로 tee
도 출력됩니다 )xyz