Архів TAR (.tar)

POSIX.1-1988 Стандарт

Tape Archive (TAR): це поширений формат упакування файлів для Unix і Linux, який об'єднує кілька файлів, каталогів і метаданих файлової системи в єдиний нестиснений потік, призначений для створення резервних копій на магнітній стрічці та розповсюдження програмного забезпечення.

Конвертувати з ZIP у TAR

Безкоштовний конвертер з ZIP у TAR у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли TAR, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли TAR, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 257):

75 73 74 61 72

ПОДАННЯ В ASCII: ustar

Стандартизація: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)

Технічні характеристики

Архітектура контейнераПослідовність блоків по 512 байтів: 512-байтовий заголовок файлу, за яким ідуть дані файлу, доповнені до кратного 512 байтам, а завершується послідовність двома нульовими блоками
СтисненняНестиснений архівний контейнер (призначений для передачі через конвеєр у gzip, bzip2, xz або zstd)
Порядок байтів (Endianness)Вісімкові рядкові поля ASCII; числові розширення у форматі big-endian
Колірні просториНе застосовується (Архівний контейнер)
Канали та структураДерево каталогів Unix, символічні та жорсткі посилання, символьні й блокові пристрої та канали FIFO
Максимальні розміриЛіміт 8 ГБ у класичному ustar; практично необмежено в сучасному форматі PAX
ПрозорістьПовне збереження прав доступу до файлів POSIX, UID/GID власника, часу доступу та розширених атрибутів
Потокове та прогресивне завантаженняПослідовний дизайн, орієнтований на потоки: дає змогу записувати дані безпосередньо на фізичні накопичувачі на магнітній стрічці

Технічна матриця порівняння: TAR проти конкурентів

Технічний атрибутTAR (Поточний)ZIP7ZCPIO
Нативне стисненняВідсутнє (контейнер лише для пакування)Вбудоване стиснення DeflateВбудоване стиснення LZMA/LZMA2Відсутнє (контейнер лише для пакування)
Збереження дозволів UnixВибрані атрибути POSIX, символічні посилання, UID/GIDОбмежена підтримка дозволів UnixЗберігає базові дозволиВибрані атрибути POSIX
Потокове витягуванняПовне потокове витягування з каналівВимагає читання центрального каталогу в кінці файлу (EOF)Вимагає читання кінцевого заголовкаПовне потокове витягування
Довільний доступ до файлівПовільний (лінійне послідовне сканування)Миттєвий (пошук за центральним каталогом)Помірний (пошук за індексом)Повільний (лінійне послідовне сканування)

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Помилка витягування: 'tar: Skipping to next header' або 'A lone zero block at X'.

Першопричина: Пошкоджене вирівнювання 512-байтових блоків або передчасне завершення потоку.

Відновлення: Розпакуйте архів за допомогою 'tar -i', щоб ігнорувати пошкоджені блоки, або відновіть його за допомогою File2File.app Tar Tool.

Аналіз безпеки та векторів атак на парсери

Програми розпакування TAR повинні ретельно перевіряти шляхи файлів, щоб запобігти довільному перезапису файлів через атаки обходу каталогу.

Відомі вектори атак

  • Атака типу 'Slip' з обходом каталогів (наприклад, '../etc/passwd'), що перезаписує критичні системні файли під час витягування.
  • Вразливості типу «гонитва умов», коли символічні посилання на системні каталоги створюються перед записом файлів.
  • Відмова в обслуговуванні через циклічні петлі жорстких посилань.

Рекомендації щодо захисту: Суворо перевіряйте шляхи файлів архіву та відхиляйте будь-які елементи, що містять посилання на батьківські каталоги ('..').

Історичне походження та віхи

2001IEEE POSIX.1-2001 запроваджує стандарт PAX (Portable Archive Interchange), який скасовує застаріле обмеження розміру в 8 ГБ.
1988IEEE POSIX стандартизує формат заголовка 'ustar' (Unix Standard Tar).
1979Представлено в Version 7 Unix (V7) компанією Bell Labs для запису дерев файлів на накопичувачі на магнітній стрічці.

Основні переваги

  • TAR може зберігати дозволи Unix, символічні посилання та ідентифікатори власників. Перевірте, чи відновлює ці поля засіб розпакування, особливо під час розпакування у Windows або іншій системі з іншими правилами дозволів.
  • Конструкція, орієнтована на магнітну стрічку: архів можна витягувати безпосередньо з мережевого каналу, не перемотуючи його до кінця файлу.
  • Менеджери пакетів Linux і засоби для контейнерів часто поширюють файли в архівах TAR, зазвичай стиснених у форматах .tar.gz або .tar.zst.

Технічні обмеження та недоліки

  • Відсутність нативного стиснення: нестиснений файл .tar має приблизно такий самий розмір, як і сукупність нестиснених вихідних файлів.
  • Довільний доступ повільний: витягування одного файлу з середини масивного tar-архіву вимагає сканування від самого початку.
  • Застарілі заголовки ustar обрізали імена файлів, довших за 100 символів (це обмеження усунуто в сучасному PAX/GNU tar).

Цікаві технічні факти

  • Магічні байти 'ustar' розташовані за зміщенням 257 всередині кожного 512-байтового блоку заголовка.
  • Спочатку TAR був написаний для фізичного керування 9-доріжковими бобінними магнітними стрічковими накопичувачами.
  • Образи контейнерів Docker та OCI є буквально складеними наборами стандартних архівів .tar, що містять відмінності в кореневій файловій системі.

Поширені технічні запитання

Чому мій файл .tar не стиснено?

TAR: це лише архіватор (він об'єднує файли в один файл) і не виконує стиснення самостійно. Щоб стиснути TAR, використайте gzip і створіть файл .tar.gz.

Яка різниця між ustar та GNU tar?

Ustar: це стандарт POSIX 1988 року з обмеженням на довжину імені файлу в 100 символів, тоді як GNU tar: це розширений формат, що підтримує необмежену довжину шляхів та розріджені файли.

Як відкрити файл .tar у Windows?

Windows 10 і 11 підтримують tar нативно через командний рядок ('tar -xf file.tar'), або ви можете розпакувати файл у графічному інтерфейсі File2File.app безпосередньо у веббраузері.