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.
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.
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
-cerstellt ein neues Archiv.-vlistet Mitglieder während der Verarbeitung auf und ist optional.-f project.tarbenennt die Archivdatei; da-fein 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?
Übe mit entbehrlichen Dateien in Dateipaketierung und -komprimierung und wende anschließend Prüfung und Staging in Eine Sicherung mit tar erstellen und wiederherstellen an.
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
-cund gzip-Datenströme mit-z.Liste Mitglieder mit
-tauf, bevor du sie mit-xextrahierst.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