왜 에 편지를 쓸 수 없나요 /dev/stdout
? 나는 루트로 로그인했습니다. 어떤 더 큰 권한을 가질 수 있습니까?
root@ubuntu:/# tcpdump -i 2 -w /dev/stdout
tcpdump: /dev/stdout: Permission denied
위의 명령이 -w /dev/null
작동합니다. 저는 우분투 리눅스를 사용하고 있습니다.
이제 char dev이고 권한이 있는 로 리디렉션되는 경로 stdout
로 리디렉션합니다 . 또 무엇이 있을까요?proc
/dev/pts
w
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