Come strumento per aiutarti a trovare il colpevole, ecco un ontreaddtrace che stampa il pid e il nome di qualsiasi processo che apre un file per la scrittura, insieme al nome del file:
dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }'
Deve essere eseguito come root (ad es. con sudo). Inseriscilo in grep hosts
per evitare annegamenti nell'output e manchi quello che stai cercando:
sudo dtrace -qn 'syscall::open*:entry /arg1&3/ { printf("%d %s %s\n", pid, execname, copyinstr(arg0)); }' | grep hosts
Si spera che questo ti indicherà quale processo sta sovrascrivendo il file. Lascia che funzioni in una finestra di terminale finché non si innesca.