Soluzione 1:
Soluzione 1 :tocco di sistema
Puoi utilizzare systemtap per mostrare tutti i PID che stanno tentando di utilizzare unlink() sull'inode di .bashrc
e .bash_profile
file.
Installa systemtap e i simboli di debug per il tuo kernel.
Crea un file con nome unlink.stap
con il seguente contenuto:
probe syscall.unlink
{
printf ("%s(%d) unlink (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}
Quindi eseguilo con sudo stap unlink.stap
Soluzione 2 :notificare
Puoi anche utilizzare inotify per vedere quando il file viene eliminato.
Soluzione 3 :ftrace
Un'altra soluzione è usare ftrace:
trace-cmd record -e \*unlink\*
Attendi che il file venga eliminato, premi CTRL+C per interrompere trace-cmd record ...
, quindi esegui:
trace-cmd report
Soluzione 4 :bpftrace
Installa bpftrace
, quindi esegui:
bpftrace -e 'tracepoint:syscalls:sys_enter_unlink* { printf("%s %s\n", comm, str(args->pathname)); }'
Soluzione 2:
oltre alla risposta di micea, puoi chattare +i i file come root e vedere se qualcosa registra un errore quando provi a rimuoverli.
Soluzione 3:
Sei assolutamente sicuro che l'utente stesso non li stia cancellando (accidentalmente)?
Ho avuto alcuni utenti (Windows) all'oscuro con lo stesso problema. Si è scoperto che cancellavano quei file da soli ogni volta che visitavano la loro home-dir con un client ftp. Hanno notato i file .xxxx (il client ftp non li nascondeva) e rimosso il "disordine".
Non mi è mai venuto in mente che lo facessero da soli finché uno di loro non si è lamentato della ricomparsa spontanea dei file che aveva cancellato diversi giorni prima.
Soluzione 4:
Utilizziamo gli script bash logout (~/.bash_logout) per ripulire determinati file al momento del logout:potresti controllare se hai quella configurazione, magari con un glob dalle dita grasse al suo interno.
Soluzione 5:
More sembra un intruso, che sta eseguendo un find /home/user -name filename -exec rm -f {} \; dopo tutto il suo furtivo :). Sto solo indovinando, perché hai detto che anche i file di backup vengono eliminati.