Archiwum Tar Gzip (.tar.gz)
POSIX.1 StandardTar 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) | Opakowanie Gzip w formacie Little-Endian zawierające ósemkowe bloki archiwum 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ść | 100% bezstratne zachowanie struktur systemu plików i danych, bit w bit |
| Streaming i progresywne ładowanie | Strumieniowanie potokiem od początku do końca: dekompresja i rozpakowywanie odbywają się jednocześnie 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 atrybutów POSIX | Ograniczone / często tracone | Zachowane podstawowe atrybuty | 100% natywne zachowanie atrybutów 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 domyślny format open source | Domyślny format na komputerach użytkowników | Ulubiony format entuzjastów Windows | Starsze wydania kodu źródłowego Linuksa |
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: Spróbuj odzyskać część danych za pomocą File2File.app Archive Extractor lub polecenia „tar -izxf broken.tar.gz”.
Analiza bezpieczeństwa i wektory ataku na parser
Nieostrożne rozpakowywanie archiwów TAR.GZ naraża na zagrożenia związane zarówno z bombami dekompresyjnymi, jak i atakami polegającymi na przechodzeniu poza katalog docelowy.
Znane wektory ataku
- Wzrost rozmiaru typowy dla bomby ZIP: niewielki plik .tar.gz rozrasta się do terabajtów zer.
- Atak polegający na przechodzeniu poza katalog docelowy (np. „../../root/.ssh/authorized_keys”) w celu nadpisania plików o podwyższonych uprawnieniach.
- Tworzenie złośliwych węzłów urządzeń podczas rozpakowywania z uprawnieniami administratora.
Najlepsze praktyki obronne: Rozpakowuj archiwa z konta bez uprawnień administratora i weryfikuj wszystkie ścieżki docelowe pod kątem prób wyjścia poza katalog.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Powszechnie stosowany standard dystrybucji kodu źródłowego open source, pakietów linuksowych i warstw kontenerów Docker.
- Łączy pełne zachowanie uprawnień POSIX i dowiązań symbolicznych z niezawodną i szybką kompresją Gzip.
- W pełni strumieniowy format: pliki można pobierać, dekompresować i rozpakowywać przez potoki sieciowe bez zapisywania 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 niż szeroko obsługiwany format 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 często zapamiętują polecenie rozpakowania pliku tar.gz dzięki angielskiemu mnemonikowi „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 osobno i zawiera katalog centralny na końcu archiwum. .tar.gz najpierw łączy wszystkie pliki w jeden strumień, zachowując pełne uprawnienia Linuksa i dowiązania symboliczne.
Czy .tgz to to samo co .tar.gz?
Tak. .tgz to skrócone, trzyliterowe rozszerzenie .tar.gz, utworzone pierwotnie dla systemów operacyjnych z ograniczeniem nazw plików do 8.3, takich jak DOS.
Jak mogę rozpakować plik .tar.gz w systemie Windows?
Pliki .tar.gz możesz rozpakować bezpośrednio w przeglądarce za pomocą File2File.app, bez instalowania WinRAR ani 7-Zip.