Ich habe 4 spezifische Dateien, die scheinbar immer wieder aus dem Home-Verzeichnis eines Benutzers verschwinden. Soweit wir wissen, gibt es keine Cronjobs oder andere automatisierte Aufgaben, die diese entfernen würden. Ich habe auditd auf sie eingerichtet, aber die Protokolle zeigen nicht wirklich etwas von Interesse. Ich kann sehen, dass unser Backup-Dienstprogramm jede Nacht auf sie zugreift, bis sie nicht mehr da sind, aber sonst nichts. Gibt es irgendetwas, das dazu führen würde, dass die Dateien entfernt werden, die um auditd herumkommen würden?
Die fraglichen Dateien sind:
/home/username/.bashrc
/home/username/.bash_profile
sowie einige Dateien im .ssh-Verzeichnis dieses Benutzers. Kopien dieser Dateien, die in einem Unterordner namens "keepers" abgelegt sind, werden ebenfalls gleichzeitig gelöscht. Es hat nicht geholfen, die Berechtigungen für sie in 000 zu ändern und sie im Besitz von root zu haben.
Momentan muss ich inotifywait einrichten, um das Erstellen, Löschen und Verschieben dieses Unterordners zu protokollieren, damit hoffentlich etwas auftaucht, obwohl nicht viel protokolliert wird, abgesehen davon, wann es passiert ist, und nicht, was es verursacht hat.
Antworten:
Lösung 1 : systemtap Mit systemtap
können Sie alle PIDs anzeigen, die versuchen, unlink () im Inode von
.bashrc
und.bash_profile
Dateien zu verwenden.Installieren Sie systemtap und die Debugsymbole für Ihren Kernel.
Erstellen Sie eine Datei mit dem Namen
unlink.stap
mit dem folgenden Inhalt:Dann starte es mit
sudo stap unlink.stap
Lösung 2 : inotify
Sie können auch inotify verwenden, um zu sehen, wann die Datei gelöscht wird.
Lösung 3 : ftrace
Eine andere Lösung besteht darin, ftrace zu verwenden :
Warten Sie, bis die Datei gelöscht wurde. Drücken Sie STRG + C, um den Vorgang abzubrechen.
trace-cmd record ...
Führen Sie dann Folgendes aus:Lösung 4 : bpftrace
installieren
bpftrace
und dann ausführen:quelle
Zusätzlich zur Antwort von micea können Sie die Dateien als root chatten und feststellen, ob beim Versuch, sie zu entfernen, ein Fehler aufgetreten ist.
quelle
Sind Sie absolut sicher, dass der Benutzer sie nicht (versehentlich) 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 mit einem FTP-Client ihr Home-Verzeichnis besuchten. Sie bemerkten die .xxxx-Dateien (der FTP-Client hat sie nicht versteckt) und beseitigten die "Unordnung".
Mir ist nie in den Sinn gekommen, dass sie es selbst gemacht haben, bis sich einer von ihnen über die spontan wieder auftauchenden Dateien beklagte, die er einige Tage zuvor gelöscht hatte.
quelle
Wir verwenden Bash-Logout-Skripte (~ / .bash_logout), um bestimmte Dateien beim Abmelden zu bereinigen. Sie können überprüfen, ob Sie über dieses Setup verfügen, möglicherweise mit einem fett gefingerten Glob.
quelle
Mehr scheint wie ein Eindringling, der ein find / home / user -name filename -exec rm -f {} \; nach all seinem schleichen :). Nur erraten, weil Sie erwähnt haben, dass die Backup-Dateien auch gelöscht werden.
quelle
Um den Verlust der Dateien und ihres Inhalts zu verhindern, können Sie libtrash über LD_PRELOAD einrichten. Mit libtrash können Sie eine Reihe von Dingen erledigen, die für Sie jedoch interessant sein könnten
Guter Artikel über libtrash gefunden werden kann hier
Eine andere Sache, die Sie erwähnen, ist, dass Sie Dateien zum Root-Verzeichnis gehörten und diese trotzdem entfernt wurden. Dies liegt daran, dass / home / username username gehört. und wenn dir gesagt hat mod 755; dann jede Datei oder jedes Verzeichnis in diesem Verzeichnis, deren Eigentümer es ist, unabhängig davon, wer vom Benutzer entfernt werden kann; auch wenn es Roots-Datei oder dir ist. Grundsätzlich liegt es an der Tatsache, dass das Entfernen von Dateien in dir bedeutet, dass der Inhalt des Verzeichnisses geändert wird und der Benutzer 7 (in 755) von diesem Verzeichnis hat, damit er tun kann, was er will.
Es gibt Möglichkeiten, dies zu blockieren, da andere Personen bereits über chattr auf ext-Dateisystemen vorgeschlagen haben, Dateien als unveränderlich festzulegen (+ i). Dann müsste man das unveränderliche Flag deaktivieren, bevor man irgendwelche Änderungen an file / dir vornimmt, die das + i-Flag haben. Unveränderliches Flag / Chattr kann nur von root verwendet werden.
quelle