Là một công cụ giúp bạn tìm ra thủ phạm, đây là một oneliner dtrace in pid và tên của bất kỳ quy trình nào mở tệp để viết, cùng với tên tệp:
dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'
Nó cần phải được chạy như root (ví dụ, với sudo). Đưa nó vào grep hosts
để tránh chết đuối đầu ra và bỏ lỡ những gì bạn đang tìm kiếm:
sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts
Hy vọng, điều này sẽ cho bạn biết quá trình ghi đè tập tin. Chỉ cần để nó chạy trong một cửa sổ đầu cuối cho đến khi nó kích hoạt.
</speculation>