로그 파일에 쓸 때 권한이 거부되는 이유는 무엇입니까? [복사]

로그 파일에 쓸 때 권한이 거부되는 이유는 무엇입니까? [복사]
debian8@hwy:~$ sudo cat /etc/sudoers |grep debian8
debian8  ALL=(ALL:ALL) NOPASSWD:ALL

이는 debian8이 슈퍼유저로 명령을 실행할 수 있는 사용자라는 뜻입니다.
로그 파일에 뭔가를 쓰고 싶습니다.

debian8@hwy:~$ trafficlog="/var/log/traffic.log"
debian8@hwy:~$ sudo echo -n `date "+%Y-%m-%d %H:%M:%S"` >> $trafficlog
bash: /var/log/traffic.log: Permission denied

Debian8에는 루트 권한이 있는데 왜 trarric 로그에 날짜 기록을 쓸 수 없나요?

답변1

sudo명령이 끝나는 곳에서 명령이 끝나기 때문입니다 .

암시적 괄호를 사용하면 이것이 바로 여러분이 하는 일입니다(특히 복잡한 방식으로 수행하고 있지만 그 이상이라는 점을 덧붙이겠습니다).

(sudo echo -n) ( date "+%Y-%m-%d %H:%M:%S") >> $trafficlog

보시다시피 echo루트로 명령을 실행하지만 리디렉션은 debian8에서 발생합니다.

무엇회의직업은 다음과 같습니다

echo -n date "+%Y-%m-%d %H:%M:%S"| sudo tee --$trafficlog 추가

관련 정보