Nur zum Spaß:
Gibt es eine Möglichkeit zum Überwachen / Erfassen / Speichern von Inhalten, auf die geschrieben wird /dev/null
?
Wenn es um Debian oder FreeBSD geht, sind auch andere betriebssystemspezifische Lösungen willkommen.
Nur zum Spaß:
Gibt es eine Möglichkeit zum Überwachen / Erfassen / Speichern von Inhalten, auf die geschrieben wird /dev/null
?
Wenn es um Debian oder FreeBSD geht, sind auch andere betriebssystemspezifische Lösungen willkommen.
/dev/null
s ergeben könnte. Ich würde nicht selbst recherchieren wollen, aber ich würde gerne die Ergebnisse lesen. (Es würde sehr wahrscheinlich ethische Probleme beim "Antworten:
Das Erstellen
/dev/null
einer Named Pipe ist wahrscheinlich der einfachste Weg. Seien Sie gewarnt, dass einige Programme (sshd
z. B.) nicht normal funktionieren oder nicht ausgeführt werden können, wenn sie feststellen, dass es sich nicht um eine spezielle Datei handelt (oder sie lesen möglicherweise aus/dev/null
und erwarten, dass sie zurückkehrtEOF
).Dies sollte unter allen Linux-Distributionen und allen wichtigen BSDs funktionieren.
quelle
tail
fehlschlägt, viele Programme möglicherweise fehlschlagen, weil der Puffer der Pipe voll ist./dev/null
werden das nicht mögen.No magic
ist ein Leitprinzip in der UNIX-Philosophie./dev/null
ist Magie,mknod /dev/null c 1 3
ist die Zauberformel, um es aufzurufen. (Und dafür braucht man Superkräfte…)Ich fand einmal auf die harte Tour , die / dev / null nicht funktioniert haben eine spezielle dev Datei sein. Vor langer Zeit wurde / dev / null auf einem Ultrix-System gelöscht. Wenn ein Programm das nächste Mal nach / dev / null umgeleitet wird, ist es eine normale Datei mit der Ausgabe dieses Programms. (Ich denke, es war 'keine solche Datei oder kein solches Verzeichnis', was bedeutete, dass wir, als wir versuchten herauszufinden, was vor sich ging, tun
cat /dev/null
und erfahren würden,no such file or directory
was uns verdammt noch mal verwirrte.)Mein Vorschlag wäre also, es durch eine Named Pipe zu ersetzen und dann ein Programm an die Pipe anzuhängen, das es liest und überwacht.
quelle
/dev/null
einem read (cat /dev/null > foo
) immer 0 Bytes zurückzugeben . Nachdem/dev/null
eine normale Datei mit dem Inhalt sein, würde diese Erwartung brechen.Ich denke an eine Idee, wo / dev / null ein Symlink zu einem Dateideskriptor sein kann, aber mit Add-Code-Mechanismus, um zu bestimmen, dass die Operation gelesen oder geschrieben wird, und wenn es dann gelesen wird, sollte es tatsächlich aus / dev / actualnull lesen, das separat mit erstellt wurde mknod und wenn es write ist, notieren Sie sich das aufrufende Programm und versuchen Sie zu protokollieren / zählen, um die Programme zu analysieren, die / dev / null zum Schreiben verwenden. Das wird allerdings eine Menge Leistung kosten, nehme ich an. Ich denke, es ist nicht praktisch, da die meisten Shell-Programme oder der Code sowieso die Umleitung verwenden. Könnte inotify verwendet werden, um die Verwendung von / dev / null zu überwachen? oder schreiben Sie den Kernel-Code, der 1: 3-Geräte handhabt, neu, kompilieren und installieren Sie ihn erneut, experimentierbar.
quelle
/dev/null
von einem Daemon aus zu steuern ). Ich habe michsshd
immer noch beschwert und wollte nicht starten.sshd
(zumindest, wie für Debian Squeeze verpackt) beschwert sich,sshd: cannot create /dev/null
wenn es sich nicht um die gängigste Implementierung handelt.