Archiwum Tar Gzip (.tar.gz)
POSIX.1 StandardowyTar Gzip (.tar.gz, znany również jako .tgz) to standardowy format dystrybucji oprogramowania oraz pakowania archiwów w świecie Linuksa i oprogramowania open-source, łączący uniksowe pakowanie TAR z uniwersalną kompresją Gzip.
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki TAR.GZ, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki TAR.GZ, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
1F 8B 08REPREZENTACJA ASCII: ..\x08
Normalizacja: POSIX.1 ustar (opakowane w kontener kompresji Gzip RFC 1952)
Specyfikacja techniczna
| Architektura kontenera | Strumień archiwum POSIX ustar / GNU tar owinięty w kontener kompresji Gzip zgodny z RFC 1952 |
| Kompresja | Dwustopniowe pakowanie: serializacja TAR, po której następuje kompresja DEFLATE |
| Kolejność bajtów (Endianness) | Koperta Gzip w formacie Little-Endian otaczająca ósemkowe bloki POSIX tar |
| Przestrzenie kolorów | Nie dotyczy (Kontener archiwum) |
| Kanały i struktura | Wieloplikowe drzewa katalogów uniksowych, powiązania symboliczne, własność plików oraz bity uprawnień |
| Maks. wymiary | Nieograniczony rozmiar strumieniowego archiwum |
| Przezroczystość | W 100% dokładna bitowo bezstratna preserwacja struktur i danych systemu plików |
| Streaming i progresywne ładowanie | Przesyłanie strumieniowe typu end-to-end: jednoczesna dekompresja i ekstrakcja w jednym przebiegu |
Techniczna macierz porównawcza: TAR.GZ a konkurencja
| Atrybut techniczny | TAR.GZ (Bieżący) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| Uprawnienia systemu Unix | 100% natywne zachowanie POSIX | Ograniczone / często tracone | Zachowane podstawowe atrybuty | 100% natywne zachowanie POSIX |
| Stopień kompresji | Umiarkowany (Gzip DEFLATE) | Umiarkowany (ZIP DEFLATE) | Bardzo wysoki (LZMA2) | Wysoki (Bzip2 BWT) |
| Szybkość dekompresji | Szybka (~300 MB/s) | Szybka (~300 MB/s) | Umiarkowana (~100 MB/s) | Powolna (~40 MB/s) |
| Standard ekosystemu Linux | Uniwersalny standard open-source | Domyślny format konsumenckich komputerów stacjonarnych | Ulubiony format entuzjastów Windows | Starsze wydania źródeł linuksowych |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Wiersz poleceń zgłasza błąd: 'gzip: stdin: invalid compressed data--format violated'.
Główna przyczyna: Uszkodzone bajty w kopercie Gzip lub przerwane pobieranie pliku.
Odzyskiwanie: Podjęcie próby częściowego odzyskania za pomocą File2File Archive Extractor lub polecenia 'tar -izxf broken.tar.gz'.
Analiza bezpieczeństwa i wektory ataku na parser
Archiwa TAR.GZ łączą w sobie zagrożenia wynikające zarówno z bomb kompresyjnych, jak i ataków typu przekroczenie katalogu, jeśli zostaną rozpakowane bez zachowania ostrożności.
Znane wektory ataku
- Amplikacja w stylu bomby ZIP, gdzie malutki plik .tar.gz rozszerza się do terabajtów zer.
- Przekroczenie katalogu (np. '../../root/.ssh/authorized_keys') powodujące nadpisanie uprzywilejowanych plików.
- Tworzenie złośliwych węzłów urządzeń podczas ekstrakcji z uprawnieniami root.
Najlepsze praktyki obronne: Rozpakowywanie archiwów jako użytkownicy bez uprawnień administracyjnych oraz sanityzowanie wszystkich docelowych ścieżek plików pod kątem przekroczenia katalogów.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Nekwestionowany standard dla wydawnictw kodu źródłowego oprogramowania open-source, pakietów linuksowych oraz warstw kontenerów Docker.
- Łączy pełną preserwację uprawnień POSIX i linków symbolicznych z niezawodną i szybką kompresją Gzip.
- W pełni strumieniowy: można go pobierać, dekompresować i rozpakowywać przez strumienie sieciowe bez konieczności zapisu plików tymczasowych na dysku.
Ograniczenia techniczne i wady
- Wyodrębnienie pojedynczego pliku wymaga dekompresji całego archiwum aż do lokalizacji tego pliku.
- Niższy wskaźnik kompresji niż w przypadku nowoczesnych alternatyw, takich jak .tar.xz czy .tar.zst.
- Mniej intuicyjny w starszych systemach Windows w porównaniu z uniwersalnymi plikami .zip.
Ciekawe informacje techniczne
- W systemach MS-DOS z ograniczeniami nazw plików 8.3 rozszerzenie '.tar.gz' zostało skrócone do '.tgz'.
- Za każdym razem, gdy uruchamiasz polecenie 'npm install', npm pobiera i rozpakowuje pakiety .tgz (tar.gz) w tle.
- Użytkownicy Linuksa powszechnie pamiętają polecenie do rozpakowywania pliku tar.gz za pomocą mnemonika 'eXtract Ze File': tar -xzf file.tar.gz.
Często zadawane pytania techniczne
Czym różni się plik .tar.gz od .zip?
.zip kompresuje każdy plik z osobna i posiada katalog centralny na końcu pliku. .tar.gz łączy najpierw wszystkie pliki w jeden strumień, zachowując pełne uprawnienia linuksowe oraz linki symboliczne.
Czy .tgz to to samo co .tar.gz?
Tak. .tgz to po prostu skrócone 3-literowe rozszerzenie pliku .tar.gz, utworzone pierwotnie dla systemów operacyjnych z krótkimi limitami nazw plików 8.3, takich jak DOS.
Jak mogę rozpakować plik .tar.gz w systemie Windows?
Możesz rozpakowywać pliki .tar.gz bezpośrednio w przeglądarce internetowej za pomocą serwisu File2File.app bez konieczności instalowania programu WinRAR lub 7-Zip.