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
.inotifywait
es una interfaz de línea de comandos para elinotify
subsistema; puede decirle que busquecreate
eventos 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
).inotifywait
probablemente esté en un paquete llamado algo así comoinotify-tools
inotify-tools
paquete, 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
auditd
demonio 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
-w
o-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
touch
con 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
sysdig
y 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
csysdig
llamadosysdig-inspect
, si esa es más su taza de té.fuente
No lo tienes,
inotify
así que puedes escribir un script que verifique el archivo en un bucle:fuente