나는 syscall이 echo
(명령이 아닌 쉘 내장)으로 만들어 졌는지 궁금해서 dtrace를 통해 snoop하기로 결정했다. 특히 dtruss
을 사용했습니다.왜`/ bin/echo`가 작성한 syscall을 추적 할 수 없습니까?
sudo dtruss /usr/local/bin/sed 's/a/e/' <<< 'cat'
SYSCALL(args) = return
thread_selfid(0x0, 0x0, 0x0) = 470642 0
# and many more…
하지만 echo
와 같은를하려고하면, 나는 다음과 같은 얻을 : 사실
sudo dtruss /bin/echo 'cat'
dtrace: failed to execute /bin/echo: unknown error
을 :
는 다음 작품 (sed
에 의해 만들어진 모든 시스템 콜을 추적하는) 것을 고려가
많은 명령이 오류가 발생합니다. 공통점은 명령이 모두
/bin
또는
/usr/bin
인 것입니다.
Brendan's blog은 (hfsslower.d
는 일반 텍스트 파일입니다 자신의 예는, sudo dtruss ls -l hfsslower.d
이다) 등 ls
같은 명령에 dtruss
를 사용하는 것이 가능하다는 것을 시사한다. 블로그 게시물은 Mac OS X와 관련하여 2011 년에 작성되었습니다. 그러나 OS X에는 그 이후로 다양한 보안 기능이 향상되었음을 알고 있습니다.
일종의 OS X 보안이 부각 될 수 있습니까? OS X 10.12 Sierra를 사용하고 있습니다.