De repente aparecieron tres archivos en mi directorio de inicio, llamados "client_state.xml", "lockfile" y "time_stats_log". Los dos últimos están vacíos. Me pregunto cómo llegaron allí. No es la primera vez que sucede, pero la última fue hace semanas; Eliminé los archivos y nada se rompió ni se quejó. No he podido pensar en lo que estaba haciendo en el momento informado por stat $filename. ¿Hay alguna manera de saber de dónde vienen?
Alternativamente, ¿hay alguna forma de monitorear el directorio de inicio (pero no los subdirectorios) para la creación de archivos?
files
monitoring
Lobo
fuente
fuente

Respuestas:
No creo que haya una manera de determinar qué programa creó un archivo.
Para su pregunta alternativa: sin embargo, puede ver cómo se recrea el archivo con
inotify.inotifywaites una interfaz de línea de comandos para elinotifysubsistema; puede decirle que busquecreateeventos en su directorio de inicio:Probablemente quiera ejecutarlo con
-m(monitor), que le dice que no salga después de ver el primer eventofuente
inotify? No está instalado (kernel 2.6.34) y no hay/dev/inotify.CONFIG_INOTIFY_USER(Filesystems->Inotify support for userspace).inotifywaitprobablemente esté en un paquete llamado algo así comoinotify-toolsinotify-toolspaquete, así que ahora tengoinotifywait(yinotifywatch). Lo probé y parece funcionar.Puede ver todo lo que sucede en un sistema de archivos accediendo a él a través de LoggedFS . Este es un sistema de archivos apilado que registra cada acceso en un árbol de directorios.
Sin embargo, registrar todo el directorio de inicio puede ralentizar su sistema. Al menos querrás escribir un archivo de configuración con filtros estrictos.
Si tiene acceso de root, en Linux, puede usar el subsistema de auditoría para registrar una gran cantidad de cosas, incluidos los accesos al sistema de archivos. Asegúrese de que el
auditddemonio esté iniciado, luego configure con qué desea iniciar sesiónauditctl. Cada operación registrada se registra en/var/log/audit/audit.log(en distribuciones típicas). Para comenzar a mirar un archivo en particular:o en la forma larga
Si coloca un reloj en un directorio (con
-wo-F dir=), los archivos en él y sus subdirectorios también se verán de forma recursiva.fuente
Es posible que desee echar un vistazo
auditd, este paquete le permite realizar auditorías de seguridad y obtener mucha información sobre quién cambió qué en el sistema de archivos.fuente
Sé que esta es una vieja pregunta, pero sugeriré otro enfoque en caso de que alguien lo encuentre útil. Originalmente publiqué esto como respuesta a una pregunta que fue engañada a esta.
Una opción es usar
sysdig: una aplicación de monitoreo de sistema de código abierto. Al usarlo, puede monitorear la actividad en un archivo por nombre. Suponga que desea ver qué proceso estaba creando un archivo llamado/tmp/example.txt:De esa salida, puede ver que un proceso llamado
touchcon pid 5470 abrió el archivo.Si desea más información, puede ejecutar en "modo de captura" donde se recopila un seguimiento de llamadas del sistema:
Luego espere a que se cree el archivo, luego pare
sysdigy ejecute:Eso te permitirá explorar todo lo que sucedió. Puede presionar
<F2>y seleccionarFiles, presionar<F4>para buscar el nombre del archivo, luego presionar<F6>para "cavar" (que le mostrará una salida similar al comando anterior). Con eso, puede usar el mismo enfoque para encontrar información sobre el proceso que realmente creó el archivo.Hay una versión GUI de
csysdigllamadosysdig-inspect, si esa es más su taza de té.fuente
No lo tienes,
inotifyasí que puedes escribir un script que verifique el archivo en un bucle:fuente