/dev/stdout에 쓸 때 "권한이 거부되었습니다"

/dev/stdout에 쓸 때 "권한이 거부되었습니다"

왜 에 편지를 쓸 수 없나요 /dev/stdout? 나는 루트로 로그인했습니다. 어떤 더 큰 권한을 가질 수 있습니까?

root@ubuntu:/# tcpdump -i 2 -w /dev/stdout
tcpdump: /dev/stdout: Permission denied

위의 명령이 -w /dev/null작동합니다. 저는 우분투 리눅스를 사용하고 있습니다.

이제 char dev이고 권한이 있는 로 리디렉션되는 경로 stdout로 리디렉션합니다 . 또 무엇이 있을까요?proc/dev/ptsw

crw-rw-rw- 1 root root 1, 3 2013-08-26 00:29 /dev/null
lrwxrwxrwx 1 root root   15 2013-08-26 00:29 /dev/stdout -> /proc/self/fd/1
lrwx------ 1 root root   64 2013-08-26 10:10 /proc/self/fd/1 -> /dev/pts/0
crw--w---- 1 xxx  tty  136, 0 2013-08-26 10:11 /dev/pts/0
root@ubuntu:/# tcpdump -i 2 -w /dev/pts/0
tcpdump: /dev/pts/0: Permission denied

답변1

내 생각엔 그럴 것 같아아파모어열기 작업을 거부합니다. 시스템 로그에 다음과 유사한 내용이 표시됩니까?

kernel: [14124112.152452] type=1400 audit(1377537799.840:40): apparmor="DENIED" operation="open" parent=111 profile="/usr/sbin/tcpdump" name="/dev/pts/0" pid=222 comm="tcpdump" requested_mask="wc" denied_mask="wc" fsuid=0 ouid=0

기본적으로 tcpdump(-w 제외)는 출력을 stdout으로 파이프합니다. stdout에서 재생 데이터를 얻으려고 합니까? 어떤 상황에서 -w -사용할 수 있나요 -w /dev/stdout?

를 사용하려면 /dev/stdout, 특히 /dev/pts/*를 통해 항목을 apparmor편집 하고 추가하십시오./etc/apparmor.d/usr.sbin.tcpdump

/dev/pts/* rw,

그런 다음 구성 파일을 다시 로드합니다.

apparmor_parser -r /etc/apparmor.d/usr.sbin.tcpdump

관련 정보