Anzeigen und Bearbeiten von Systemdateien, die aus unlesbarem Text und Symbolen bestehen

7

Ich hatte den Eindruck, dass grundsätzlich alle Dateien in einem Unix-System bearbeitet werden können, zumindest sichtbar.

Welche Schritte kann ich unternehmen, wenn ich auf eine Datei stoße, die wie folgt aussieht nano:

Screenshot der in Nano angezeigten binären Datei greeter-dconf-defaults

Wie finde ich heraus, um welchen Dateityp es sich wirklich handelt, ob es sich um eine laufende Datei handelt und was ich brauche, um sowohl den Code als auch die Abhängigkeit der Datei zu ermitteln / zu exportieren / davon abhängig zu machen?

Emil Johansson
quelle

Antworten:

9

Alle Dateien, die sich im Dateisystem oder im Speicher befinden, können technisch bearbeitet werden. Sie müssen nur die richtigen Methoden verwenden. Sie sind auf eine Binärdatendatei gestoßen, die sich insbesondere auf die dconfDatenbank mit Einstellungen bezieht, die anhand des Namens in der nanoDateinamenzeile und des Schlüsselworts GVariantin der Datei selbst beurteilt werden . Dementsprechend sollten Sie das dconf-editorGUI-Tool oder das dconfBefehlszeilentool verwenden.

Wie finde ich heraus, um welchen Dateityp es sich wirklich handelt, ob es sich um eine laufende Datei handelt und was ich brauche, um sowohl den Code als auch die Abhängigkeit der Datei vom Import / Export / zu ermitteln?

Normalerweise können Sie den fileBefehl verwenden, um den bestimmten Dateityp herauszufinden.

$ file /etc/passwd
/etc/passwd: ASCII text

Ob die Datei ausführbar ist, können Sie verwenden ls -l filenameoder statbestimmen, ob das ausführbare Bit für Eigentümer, Gruppe und andere Benutzer festgelegt ist. In einem verwandten Beitrag werden die Berechtigungen für Dateien recht gut erläutert. Es gibt auch Zugriffssteuerungslisten , mit denen ausgefallenere Berechtigungen erstellt werden, als die grundlegenden Unix-Berechtigungen zulassen.

Welche Software verwendet werden soll, hängt von jeder Datei ab, und es gibt viele Arten von Software für denselben Dateityp. Binärdateien können im Allgemeinen häufig über Hexdump- oder Od-Befehle im Hex-Format angezeigt werden. Zum Bearbeiten gibt es Hex-Editoren, die häufig in Reverse Engineering- und Sicherheitsanwendungen verwendet werden.


Ich hatte den Eindruck, dass grundsätzlich alle Dateien in einem Unix-System bearbeitet werden können, zumindest sichtbar.

Nun, es gibt ein bisschen Wahrheit, die auf die Worte "Alles ist eine Datei in Unix / Linux" geworfen werden muss. Es gibt Dateien, die im Dateisystem leben können, und das kennen die meisten Leute als Dateien. In der Realität kann eine Datei (dh ein bestimmter Datenblock, der irgendwo zusammen organisiert ist) im Speicher oder im Dateisystem gespeichert sein, dh es können anonyme Dateien vorhanden sein. Sockets und unbenannte Pipes sind Dateien, sie haben nur keinen Namen, nur ein Handle, das der Kernel verfolgt. Können alle bearbeitet werden? Ja, wieder mit den richtigen Methoden. Pipes werden von einem Prozess geschrieben, während ein anderer liest, sodass der Writer die Pipe bearbeiten kann. Im Speicher zugeordnete Dateien können bearbeitet werden, wenn Ihr Programm auf diesen bestimmten Speicherbereich zugreifen kann. Also ist alles eine Datei,

Sergiy Kolodyazhnyy
quelle
/dev/randomkeine Datei.
Rinzwind
4
@Rinzwind Es ist eine Datei, um genau zu sein eine Sonderzeichen-Gerätedatei. Siehe auch unix.stackexchange.com/a/18534/85039
Sergiy Kolodyazhnyy
@Rinzwind Der Artikel fegt das Wort "Datei" unter derselben Definition, an die die meisten Benutzer denken - eine Datei, die im Dateisystem lebt, aber auch hier gibt es Dateien, die nicht im Dateisystem gespeichert sind. Obwohl mir die Definition "Alles ist ein Strom von Bytes" gefällt, ist das jede Datei.
Sergiy Kolodyazhnyy
4
@Rinzwind - Sie müssen verstehen, dass "alles eine Datei ist" als "(fast) alles ist über eine Datei-API zugänglich". Sie können fopen ("/ dev / random", "rb") ausführen, sodass / dev / random eine Datei ist, unabhängig von einer Darstellung (oder einem Fehlen davon) auf der Festplatte.
Edheldil