Lösung 1:
Lösung 1 :Systemtipp
Sie können systemtap verwenden, um alle PIDs anzuzeigen, die versuchen, unlink() auf dem Inode von .bashrc
zu verwenden und .bash_profile
Dateien.
Installieren Sie systemtap und die Debug-Symbole für Ihren Kernel.
Erstellen Sie eine Datei mit dem Namen unlink.stap
mit folgendem Inhalt:
probe syscall.unlink
{
printf ("%s(%d) unlink (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}
Führen Sie es dann mit sudo stap unlink.stap
aus
Lösung 2 :inbenachrichtigen
Sie können auch inotify verwenden, um zu sehen, wann die Datei gelöscht wird.
Lösung 3 :ftrace
Eine andere Lösung ist die Verwendung von ftrace:
trace-cmd record -e \*unlink\*
Warten Sie, bis die Datei gelöscht ist, drücken Sie STRG+C, um trace-cmd record ...
zu stoppen , dann führe aus:
trace-cmd report
Lösung 4 :bpftrace
Installieren Sie bpftrace
, dann führe aus:
bpftrace -e 'tracepoint:syscalls:sys_enter_unlink* { printf("%s %s\n", comm, str(args->pathname)); }'
Lösung 2:
Zusätzlich zu der Antwort von mousea können Sie die Dateien als root +i chatten und sehen, ob beim Versuch, sie zu entfernen, ein Fehler protokolliert wird.
Lösung 3:
Sind Sie absolut sicher, dass der Benutzer sie nicht (aus Versehen) selbst löscht?
Ich hatte einige ahnungslose (Windows) Benutzer mit dem gleichen Problem. Es stellte sich heraus, dass sie diese Dateien jedes Mal selbst löschten, wenn sie ihr Heimatverzeichnis mit einem FTP-Client besuchten. Sie bemerkten die .xxxx-Dateien (der FTP-Client versteckte sie nicht). und entfernte die "Unordnung".
Mir ist nie in den Sinn gekommen, dass sie es sich selbst angetan haben, bis sich einer von ihnen über die spontan wieder aufgetauchten Dateien beschwerte, die er einige Tage zuvor gelöscht hatte.
Lösung 4:
Wir verwenden Bash-Logout-Skripte (~/.bash_logout), um bestimmte Dateien beim Abmelden zu bereinigen - Sie können überprüfen, ob Sie diese Einrichtung haben, vielleicht mit einem dickfingrigen Klumpen darin.
Lösung 5:
More scheint ein Eindringling zu sein, der find /home/user -name filename -exec rm -f {} \; durchführt nach all seinem schleichen :). Nur eine Vermutung, weil Sie erwähnt haben, dass die Sicherungsdateien auch gelöscht werden.