Esta es una respuesta que escribí a una pregunta anterior:
Generalmente, si desea saber qué está haciendo un proceso / usuario / archivo sin tener que ejecutar lsof contra él las 24 horas del día, los 7 días de la semana, use auditctl.
Asumir que tiene un control de auditoría de kernel reciente es una operación simple. (Esto está en Debian-fu, si está ejecutando Red Hat translate según corresponda)
# apt-get install auditd
Asegúrese de que se esté ejecutando (/etc/init.d/auditd status).
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
Reemplace b64 con b32 si está ejecutando un arco de 32 bits, abrir puede ser reemplazado por cualquier llamada al sistema o la palabra 'todos'
Para más información, lea la página de manual de auditctl.
Puede usar este método y pedirle que observe la llamada al sistema 'desvincular'.
El parámetro -w es útil para ver archivos / directorios, pero como explica la página del manual, hay advertencias.
-w ruta Inserta un reloj para el objeto del sistema de archivos en la ruta. No puede insertar un reloj en el directorio de nivel superior. Esto está prohibido por el núcleo. Los comodines tampoco son compatibles y generarán una advertencia. La forma en que funcionan los relojes es siguiendo el inodo internamente. Esto significa que si pone un reloj en un directorio, verá lo que parecen ser eventos de archivo, pero en realidad es solo la actualización de metadatos. Puede perderse algunos eventos al hacer esto. Si necesita ver todos los archivos en un directorio, se recomienda colocar un reloj individual en cada archivo. A diferencia de las reglas de auditoría de syscall, los relojes no afectan el rendimiento en función del número de reglas enviadas al núcleo.
¿Quizás se podría usar incron ?
fuente
Un par de ideas Puede usar
strace
para ver qué está haciendo su aplicación, pero puede generar un registro de registros y puede ralentizar el sistema.Otra idea es usar
inotifywait
, luegolsof/fuser
en el archivo para ver qué lo está usando. Puede intentar ejecutar este script con alta prioridad (si puede) para tener información lo más precisa posible. Probablemente no capturará launlink
llamada, ya que el archivo desaparecerá antes de que se entregue el evento.fuente
-f
bandera, para seguir a los hijos.Si bien la recomendación auditada de fenix parece ideal, puede encontrar un IDS de sistema de archivos como AIDE útil. Desafortunadamente, es poco probable que sea lo suficientemente fino para lo que intenta aislar.
A menudo escribo guiones como solución para problemas como los que usted describe. Si no puede lograr lo que desea con las soluciones recomendadas, escriba algo usted mismo. A menudo no es muy complicado.
fuente