Solución 1:
Solución 1 :toque del sistema
Puede usar systemtap para mostrar todos los PID que intentan usar unlink() en el inodo de .bashrc
y .bash_profile
archivos.
Instale systemtap y los símbolos de depuración para su kernel.
Crea un archivo con el nombre unlink.stap
con el siguiente contenido:
probe syscall.unlink
{
printf ("%s(%d) unlink (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}
Luego ejecútalo con sudo stap unlink.stap
Solución 2 :notificar
También puede usar inotify para ver cuándo se elimina el archivo.
Solución 3 :rastro
Otra solución es usar ftrace:
trace-cmd record -e \*unlink\*
Espere a que se elimine el archivo, presione CTRL+C para detener trace-cmd record ...
, luego ejecuta:
trace-cmd report
Solución 4 :bpftraza
Instalar bpftrace
, luego ejecuta:
bpftrace -e 'tracepoint:syscalls:sys_enter_unlink* { printf("%s %s\n", comm, str(args->pathname)); }'
Solución 2:
además de la respuesta de micea, puede chatear los archivos como root y ver si algo registra un error al intentar eliminarlos.
Solución 3:
¿Está absolutamente seguro de que el propio usuario no los está eliminando (accidentalmente)?
Tuve algunos usuarios despistados (Windows) con el mismo problema. Resultó que ellos mismos borraban esos archivos cada vez que visitaban su directorio de inicio con un cliente ftp. Notaron los archivos .xxxx (el cliente ftp no los ocultó) y eliminó el "desorden".
Nunca se me ocurrió que se lo hicieran ellos mismos hasta que uno de ellos se quejó de la reaparición espontánea de archivos que había borrado varios días antes.
Solución 4:
Usamos secuencias de comandos de cierre de sesión de bash (~/.bash_logout) para limpiar ciertos archivos al cerrar la sesión; puede verificar si tiene esa configuración, tal vez con un globo de dedos gordos.
Solución 5:
Más parece un intruso, que está haciendo un find /home/user -name filename -exec rm -f {} \; después de todo su furtivo :). Solo supuse, porque mencionaste que los archivos de copia de seguridad también se eliminarán.