Bash가 시작될 때 액세스/사용된 모든 파일을 어떻게 추적하고 인쇄할 수 있나요?

Bash가 시작될 때 액세스/사용된 모든 파일을 어떻게 추적하고 인쇄할 수 있나요?

bashmacOS에서 실행할 때마다 콘솔에 액세스된 모든 파일을 인쇄 해야 하는 문제가 있습니다 .

비교적 쉬운 방법이 있나요? 어쩌면 dtrace이것을 아주 간단하게 만들 수 있을까요?

답변1

"bash"라는 프로세스에서 직접 연 모든 파일을 보려면 다음을 수행할 수 있습니다.

$ sudo dtrace -n 'syscall::open*:entry/execname == "bash"/{ trace(copyinstr(arg0)); }'

또는 bash 시작과 프롬프트 사이에 열린 모든 파일을 보고 싶을 수도 있습니다. 이렇게 하려면 다음을 수행할 수 있습니다.

$ sudo dtrace -n 'syscall::open*:entry/progenyof($target)/{ printf("%s %s", execname, copyinstr(arg0)) }' -c bash

열려 있는 파일과 해당 파일에 액세스하는 데 사용되는 명령이 표시됩니다.

관련 정보