GNU/Linux >> Linux Esercitazione >  >> Linux

Scopri quale processo sta modificando un file

Soluzione 1:

Puoi usare il controllo per trovarlo. Se non è già disponibile, installa e abilita il controllo per la tua distribuzione.

impostare un audit watch su /etc/hosts

/sbin/auditctl -w /etc/hosts -p war -k hosts-file

-w watch /etc/hosts
-p warx watch for write, attribute change, execute or read events
-k hosts-file is a search key.

Aspetta che il file hosts cambi e poi usa ausearch per vedere cosa è registrato

/sbin/ausearch -f /etc/hosts | more

Otterrai enormi quantità di output, ad esempio

> time->Wed Oct 12 09:34:07 2011 type=PATH
> msg=audit(1318408447.180:870): item=0 name="/etc/hosts" inode=2211062
> dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00
> obj=system_u:object_r:etc_t:s0 type=CWD msg=audit(1318408447.180:870):
> cwd="/home/iain" type=SYSCALL msg=audit(1318408447.180:870):
> arch=c000003e syscall=2 success=yes exit=0 a0=7fff73641c4f a1=941
> a2=1b6 a3=3e7075310c items=1 **ppid=7259**  **pid=7294** au id=1001 uid=0 gid=0
> euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=123 
> comm="touch" **exe="/bin/touch"** subj=user_u:system_r:unconfined_t:s0
> key="hosts-file"

In questo caso ho usato il comando touch per modificare i file timstamp, il suo pid era 7294 e il suo ppid era 7259 (la mia shell).

Soluzione 2:

Puoi anche usare inotify-tools:

  inotifywait -mq -e open -e modify /etc/hosts

Soluzione 3:

Dopo molte ricerche, ho trovato la soluzione, basta usare questo comando:sudo fs_usage | grep [path_to_file]


Linux
  1. Creare un file host specifico per l'utente per completare /etc/hosts?

  2. Come viene aggiornato /etc/motd?

  3. Aggiungi una riga al file /etc/hosts con lo script della shell

  4. Come scoprire da quale cartella è in esecuzione un processo?

  5. Qual è il limite di dimensione di /etc/hosts?

3 modi per scoprire quale processo è in ascolto su una porta particolare

Linux:scopri su quale numero di porta è in ascolto un processo

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Esiste un utente specifico equivalente a /etc/hosts?

Nel mio file /etc/hosts/ su Linux/OSX, come creo un sottodominio con caratteri jolly?

Differenza tra /etc/hosts e /etc/resolv.conf