GNU/Linux >> Tutoriales Linux >  >> Linux

Averigüe qué proceso está cambiando un archivo

Solución 1:

Puede usar la auditoría para encontrar esto. Si aún no está disponible, instale y habilite la auditoría para su distribución.

establecer una vigilancia de auditoría en /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.

Espere hasta que el archivo de hosts cambie y luego use ausearch para ver lo que se registra

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

Obtendrá una gran cantidad de resultados, por ejemplo,

> 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"

En este caso, utilicé el comando táctil para cambiar la marca de tiempo de los archivos, su pid era 7294 y su ppid era 7259 (mi shell).

Solución 2:

También puede usar las herramientas de inotify:

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

Solución 3:

Después de mucha búsqueda, encontré la solución, solo usa este comando:sudo fs_usage | grep [path_to_file]


Linux
  1. ¿Crear un archivo de hosts específico del usuario para complementar /etc/hosts?

  2. CentOS / RHEL:cómo recuperarse de un archivo /etc/passwd eliminado

  3. Entendiendo el archivo /etc/hosts en Linux

  4. ¿Cómo averiguo qué proceso tiene un bloqueo en un archivo en Linux?

  5. ¿Cómo saber qué proceso está usando un archivo en Linux?

3 formas de averiguar qué proceso está escuchando en un puerto en particular

Linux:averigüe en qué número de puerto está escuchando un proceso

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

¿Existe un equivalente específico de usuario para /etc/hosts?

Diferencia entre /etc/hosts y /etc/resolv.conf

Límite de tamaño de /etc/hosts (Linux)