tar und gzip
100%

Pakete · Lektion 3

tar und gzip

Erfahre, wie du Dateien mit `tar` archivierst, Datenströme mit `gzip` komprimierst und Archive vor einer sicheren Extraktion prüfst.

Archivierung und Komprimierung lösen unterschiedliche Probleme. Ein Archiv fasst einen Verzeichnisbaum und dessen Metadaten in einem Datenstrom zusammen. Komprimierung codiert einen Datenstrom, um seine Größe zu verringern. Eine .tar.gz-Datei ist konventionsgemäß ein tar-Archiv, dessen Datenstrom mit gzip komprimiert wurde.

Einen Datenstrom mit `gzip` komprimieren

Standardmäßig komprimiert gzip eine Datei und ersetzt den ursprünglichen Namen durch eine .gz-Datei:

$ gzip report.txt

Nach der erfolgreichen Erstellung von report.txt.gz wird report.txt dabei gewöhnlich entfernt. Dekomprimiere die Datei mit:

$ gunzip report.txt.gz

Verwende, sofern unterstützt, gzip -k report.txt, um die Eingabedatei zu behalten, oder nutze Standarddatenströme, wenn du ausdrückliche Kontrolle benötigst. Eine Dateinamenerweiterung ist eine Konvention und kein Beweis für das tatsächliche Format; Werkzeuge wie file können den Inhalt prüfen.

Was ist in dieser Lektion die Hauptaufgabe von gzip?

Ein tar-Archiv erstellen

Erstelle ein unkomprimiertes Archiv mit:

$ tar -cvf project.tar file1 file2 directory1
  • -c erstellt ein neues Archiv.
  • -v listet Mitglieder während der Verarbeitung auf und ist optional.
  • -f project.tar benennt die Archivdatei; da -f ein Argument verbraucht, solltest du den Dateinamen direkt daneben angeben.

Pfade werden als Namen von Archivmitgliedern gespeichert. Erstelle Archive aus einem bewusst gewählten Arbeitsverzeichnis und vermeide, unbeabsichtigt Geheimnisse, Zwischenspeicher, Sockets oder weit gefasste absolute Pfade aufzunehmen.

Welche Option von tar erstellt ein neues Archiv?

Ein gzip-komprimiertes tar-Archiv erstellen

GNU tar und viele andere Implementierungen können gzip mit -z aufrufen:

$ tar -czvf project.tar.gz file1 file2 directory1

Das Ergebnis ist ein einzelner gzip-komprimierter tar-Datenstrom. Komprimierung verschlüsselt das Archiv nicht und verbirgt seinen Inhalt nicht vor jemandem, der es lesen und dekomprimieren kann. Wenn Vertraulichkeit erforderlich ist, verwende einen geeigneten Arbeitsablauf mit authentifizierter Verschlüsselung und verwalte Schlüssel getrennt.

Was fordert -z im gezeigten tar-Befehl an?

Vor dem Extrahieren auflisten

Behandle ein Archiv von einer anderen Partei als nicht vertrauenswürdige Eingabe. Liste zuerst seine Mitgliedsnamen auf:

$ tar -tzf download.tar.gz

Achte auf unerwartete absolute Pfade, ..-Traversierungskomponenten, überraschende symbolische oder harte Links, Gerätedateien und Namen, die wichtige Dateien überschreiben würden. Moderne tar-Implementierungen wenden Schutzmaßnahmen an, doch Verhalten und Optionen unterscheiden sich, und die Extraktion erzeugt weiterhin vom Angreifer ausgewählte Namen und Inhalte.

Extrahiere in ein neu erstelltes, unprivilegiertes Staging-Verzeichnis:

$ mkdir extraction-stage
$ tar -xzf download.tar.gz -C extraction-stage

Extrahiere ein ungeprüftes Archiv nicht als root. Prüfe, was erstellt wurde, bevor du ausgewählte Dateien an ihre endgültigen Orte verschiebst.

Welche Operation listet Archivmitglieder auf, ohne sie zu extrahieren?

Andere Komprimierungsformate

Tar-Implementierungen können mit Komprimierern wie bzip2 und xz arbeiten, die in GNU tar gewöhnlich mit -j beziehungsweise -J ausgewählt werden. Formatunterstützung und automatische Erkennung unterscheiden sich. Lies daher tar --help oder das lokale Handbuch. ZIP ist ein getrenntes Archivformat, das mit Werkzeugen wie zip und unzip bedient wird.

Macht die gzip-Komprimierung ein tar-Archiv vertraulich?

Lektion abgeschlossen

Sie haben tar und gzip abgeschlossen

Du kannst tar-Archivierung nun sicher mit gzip-Komprimierung verbinden.

  • Unterscheide ein tar-Archiv von der gzip-Komprimierung.

  • Erstelle Archive mit -c und gzip-Datenströme mit -z.

  • Liste Mitglieder mit -t auf, bevor du sie mit -x extrahierst.

  • Extrahiere nicht vertrauenswürdige Inhalte in ein unprivilegiertes Staging-Verzeichnis.

  • Behandle Komprimierung getrennt von Verschlüsselung.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Pakete