Linux создать архив с паролем
Как создать архив в linux. В этой статье рассмотрим популярные средства для архивирования файлов и папок. Зачем нужно архивирование? Для удобства хранения и перемещения файлов. С его помощью происходит объединение нескольких файлов или папок в один файл.
Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux
Стандартная утилита для создания архивов в linux - "tar". Синтаксис команды такой:
- c - создание нового архива
- f - имя файла для архива
- r - добавление файлов в конец архива
- x - извлечение файлов из архива
- t - вывод списка содержимого архива
- v - вывод сведений о работе программы
- -C - распаковать в указанную папку
Например. У меня есть папка "Test" и я хочу создать архив tar. Команда tar будет такой:
В результате получится файл архива "Test.tar"
Для того, что бы увидеть работу программы можно использовать опцию "v". Будет выведено какие файлы и папки добавлены в архив. Например:
В данном случае архив создается с полной структурой папок.
Как в linux архивировать папку по заданному пути
Часто нужно создать архив не заходя в директорию. Давайте рассмотрим пример как создать архив не сохраняя структуру а создать архив только нужной папки из дерева.
Например, у меня есть папка "test" и вложенные "test1/test2". Внутри каждой папки находится по одному файлу. Если использовать команду вида tar cf test.tar test/test1/test2 то будет архив tar со всеми папками и файлами включая и test и test1.
Чтобы сделать архив папки по определенному пути нужно использовать опцию --directory=КАТАЛОГ либо -C и в конце через пробел указываем нужную папку для архивации.
Пример использования linux tar с опцией "directory":
Теперь пример с опцией "-С":
Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.
Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив. Для этого нужно использовать опцию "r". Пример. Добавить файл "file.txt" в архив "Test.tar". Используем команду:
Что бы просмотреть содержимое архива tar используйте команду:
Будет отображено содержимое архива "Test".
Как распаковать tar архив в linux
Теперь давайте рассмотрим как распаковать или как еще говорится разархивировать архив tar. Для этого дайте команду:
Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл "file.txt". Для этого нужно дать команду:
Для того, чтобы извлечь архив в другой каталог используйте атрибут "-C". Например требуется распаковать архив в папку "Driver" находящуюся в директории "Zhelezo". Выполню команду:
Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.
Создание архива в Linux с использованием сжатия
Переходим к созданию сжатых архивов. Рассмотрим два основных метода сжатия Gzip (быстрее работает) и Bzip2 (лучше сжимает).
Пример сжатия tar gz linux, методом Gzip (утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate):
Рассмотрим, как сжать папку с файлами - "Test". Для сжатия gzip используем tar z и расширение .gz :
Пример сжатия Bzip2 (утилита для сжатия данных с помощью алгоритма Барроуза — Уилера.):
Для сжатия Bzip2 используем tar j и расширение .bz2 :
Получили два архива "Test.tar.bz2" и "Test.tar.gz".
Linux распаковать tar gz и tar bz2
Разархивировать tar gz в linux. Распаковать сжатые файлы можно способом описанным выше либо так же используя tar z и tar j . Например, чтобы распаковать gz файл (gzip), используем команду:
Для распаковки bzip команду:
Как разделить большой архив tar на несколько файлов определенного размера (linux многотомный архив)?
Для передачи по сети файла большого размера иногда необходимо разделить его на более мелкие части. В данном примере я расскажу как сделать это с помощью утилиты split . Работа с утилитой проста. Задаем ключ, затем указываем файл и префикс. Разберем на примере. Я "разобью" архив "Test.tar" на части по 10 килобайт:
Размер задаётся целым числом и необязательной единицей изменения
(пример: 10K это 10*1024). Единицы изменения:
K, M, G, T, P, E, Z, Y (степень 1024) или KB, MB, … (степень 1000).
Можно разбить не по размеру а по частям указав количество. Например я разделю тестовый архив на 3 части. Для этого нужно использовать ключ -n . Пример:
Итак мы поняли как разделить архив и по размеру и обозначив желаемое количество частей. Теперь давайте посмотрим как собрать разделенный архив. Для этого будем использовать утилиту cat . Для объединения всех частей архива вводим команду:
Символ "*" после ".parta" обозначает, что нужно использовать все файлы с именем "parta". После выполнения команды файл будет объединен.
Создание и распаковка ZIP-архивов в linux
Переходим к работе с архивами zip в linux. Для работы нам потребуется утилита zip . По умолчанию она не установлена. Для инсталляции выполним команду:
Маска для работы будет такой.:
Основные опции утилиты zip:
- -r - рекурсивно обходить каталоги;
- -0 - только архивировать, без сжатия;
- -9 - максимальная степень сжатия;
Полную справку можно получить введя в терминале команду man zip .
Для создания архива зип нужно указать команду zip затем имя будущего архива с расширением .zip , затем имя файла для архивации:
Если нужно добавить в архив сразу несколько файлов то перечислите их через пробел. Например:
Для архивирования папки используйте ключ -r . Например:
Утилита поддерживает уровни сжатия которые задаются с помощью префикса от -0 (без сжатия) до -9 максимальный уровень. Если нужно сделать архив папки с максимальным сжатием то можно использовать такую команду:
Создаем zip-архив с паролем в Linux
С помощью утилиты "zip" можно создавать архивы с паролем. Для этого используется опция -P . Например:
Так, что бы создать архив secure.zip в котором будет заархивирован файл "file.txt" с паролем "passwd" введите команду:
Для того, что бы задавая пароль никто его не увидел укажите ключ -e или --encrypt . Например. Чтобы создать зашифрованный архив файла "file.txt" с именем "secure.zip" укажите команду:
После выполнения команды будет выдан запрос на задание пароля и подтверждения:
Напомню, что при вводе пароля отображения символов не будет.
Установка степени сжатия для zip linux архива. Для утилиты zip можно указать насколько сильно необходимо сжать архив. Можно указать значение от 0 до 9. Здесь 0 это отсутствие сжатия, 9 - максимально. По умолчанию то есть без указания дополнительных параметров, выставлено значение 6. Пример. Для архивации папки "folder" без сжатия команда будет такой:
Учитывайте, что чем выше укажете уровень сжатия тем выше нагрузка на систему и больше времени потребуется на операцию.
Распаковка zip-архива в Linux
Что бы распаковать zip в linux используйте команду unzip . Синтаксис такой: unzip имя_архива.zip. Например, что бы распаковать zip linux архив с именем "archive.zip" выполните:
Файлы будут распакованы в текущую директорию. Если требуется распаковать в другую папку то нужно использовать параметр -d . Например. Нужно распаковать архив "archive.zip" в папку с названием "1" находящуюся в папке "Документы". Для этого даем команду:
Для распаковки зашифрованных архивов на которые был установлен пароль будет выдан запрос на ввод пароля а затем нужно подтвердить указав английскую букву "y".
Создание и распаковка архива tar.xz в Linux
Некоторые программы распространяются в этом формате. Как устанавливать программы в линукс читайте в этой статье.
Ещё один популярный формат архива в линукс .xz. Используется алгоритм сжатия LZMA2, такой же как и в 7z имеющий очень высокую степень сжатия. Расплачиваться за это придется нагрузкой на процессор и большее использование памяти по сравнению .gzip и .bzip2.
В этом разделе я расскажу как создавать и как распаковать tar.xz файл в Linux. Для работы потребуется поддержка утилиты сжатия XZ. Если её нет то установите командой:
Синтаксис для создания архива tar.xz такой:
- c — создать архив
- f — имя файла
- J — указывает на создание архива xz
- v или —verbose — можно указать для отображения добавленных в архив файлов
Если передаете аргументы tar с дефисами (например, tar -cf в отличие от tar cf), тогда опция -f должна быть последней , поскольку она указывает имя файла.
Предположим, вам необходимо создать zip-архив, защищенный паролем. В Linux для этого имеется несколько способов.
В этом руководстве я опишу, как создать зашифрованный zip-архив в Linux.
Способ первый
Утилита командной строки zip имеет опцию шифрования. Здесь используется потоковый алгоритм шифрования PKZIP , о котором известно, что он небезопасен. Кроме того, тот факт, что пароль вводится и показывается в виде простого текста, делает его еще более уязвимым.
Для создания зашифрованного архива с помощью zip используется команда вида:
Для его распаковки используется команда:
Способ второй
Архиватор 7z позволяет создавать архивы в формате zip с более безопасным алгоритмом шифрования. Согласно официальной документации, архиватор 7z поддерживает алгоритм шифрования AES-256 с генерированием ключей на базе алгоритма хэширования SHA-256.
Для создания зашифрованного архива с помощью 7z используется команда:
Для его распаковки используется команда:
Способ третий
Еще один метод создания безопасного zip-архива - использования программы для шифрования с симметричным ключом GnuPG.
Для создания зашифрованного архива tar с помощью GnuPG используется команда:
Распаковка такого архива:
Способ четвертый
Если вы используете файловый менеджер Nautilus, вы можете использовать его для простого и быстрого создания защищенных паролем архивов. Сначала выделите файлы, которые вы хотите включить в архив. Затем кликните правой кнопкой мыши, и выберите опцию "Compression" в контекстном меню.
Введите имя архива, затем выберите "zip" из списка доступных форматов (или "7z", если у вас установлен архиватор 7z). Кликните "Other Options" и введите пароль. На самом деле Nautilus также использует команду zip для создания этого архива.
В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.
В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту - tar, но и другие менее известные, а также популярные алгоритмы сжатия.
Архивирование в Linux
Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование - это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема - терминал.
Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.
Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.
Tar - это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:
$ tar опции f файл_для_записи /папка_файлами_для_архива
А теперь разберем основные опции:
- A - добавить файл к архиву
- c - создать архив в linux
- d - сравнить файлы архива и распакованные файлы в файловой системе
- j - сжать архив с помощью Bzip
- z - сжать архив с помощью Gzip
- r - добавить файлы в конец архива
- t - показать содержимое архива
- u - обновить архив относительно файловой системы
- x - извлечь файлы из архива
- v - показать подробную информацию о процессе работы
- f - файл для записи архива
- -C - распаковать в указанную папку
- --strip-components - отбросить n вложенных папок
Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:
tar -cvf archive.tar.gz /path/to/files
А чтобы распаковать архив tar linux:
tar -xvf archive.tar.gz
Очень просто запомнить для упаковки используется опция c - Create, а для распаковки - x - eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
tar -zcvf archive.tar.gz /path/to/files
$ tar -zxvf archive.tar.gz
Например, рассмотрим как заархивировать папку в Linux:
tar -zcvf home.tar.gz
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
tar -rvf archive.tar file.txt
Для извлечения одного файла синтаксис тот же:
tar -xvf archive.tar file.txt
Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:
tar -xvf archive.tar --wildcards '*.php'
По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:
tar -xvf archive.tar -C /path/to/dir
Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.
Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.
- -o - сохранять архив в файл вместо стандартного вывода
- -l - ограничить размер выходного файла
- -L - ограничить размер выходного файла и разбить его на части
- -n - имя архива не будет включено в заголовок
- -a - разрешить автоматическую генерацию заголовков
Примеры использования shar для того чтобы заархивировать папку linux:
Создаем shar архив:
shar file_name.extension > filename.shar
Распаковываем shar архив:
ar - утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.
- - d - удалить модули из архива
- - m - перемещение членов в архиве
- - p - напечатать специфические члены архива
- - q - быстрое добавление
- - r - добавить члена к архиву
- - s - создать индекс архива
- - a - добавить новый файл к существующему архиву
Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:
ar cr libmath.a substraction.o division.o
Теперь извлечем файлы из архива:
Таким образом, можно распаковать любую статическую библиотеку.
cpio - означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.
- -a - сбросить время обращения к файлам после их копирования
- -A - добавить файл
- -d - создать каталоги при необходимости
Пример использования. Создаем cpio архив:
file1.o file2.o file3.o
ls | cpio -ov > /path/to/output_folder/obj.cpio
cpio -idv < /path/to folder/obj.cpio
Архивирование папки linux выполняется также само.
Сжатие архивов в Linux
Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них
Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:
$ gzip опции файл
$ gunzip опции файл
Теперь разберем опции:
- -c - выводить архив в стандартный вывод
- -d - распаковать
- -f - принудительно распаковывать или сжимать
- -l - показать информацию об архиве
- -r - рекурсивно перебирать каталоги
- -0 - минимальный уровень сжатия
- -9 - максимальный уровень сжатия
Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:
gzip -c файл > архив.gz
А теперь распакуем:
gunzip -c архив.gz
Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.
bzip2 - еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.
Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:
В текущем каталоге будет создан файл file.bz2
Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.
Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.
Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.
$ zip опции файлы
$ unzip опции архив
Чтобы создать Zip архив в Linux используйте:
zip -r /path/to/files/*
А для распаковки:
Как видите архивирование zip в Linux не сильно отличается от других форматов.
Выводы
Теперь вы знаете все что нужно об архивации файлов в Linux. Мы рассмотрели только консольные команды, так сказать, чтобы была понятна суть. В графическом интерфейсе все еще проще. Если остались вопросы - задавайте их в комментариях.
Допустим вы хотите создать zip архив защищённый паролем, для того чтобы тот, кто пробует распаковать zip файл, должен был ввести правильный пароль. На Linux есть несколько способов для шифрования и защиты паролем zip файла.
В этом уроке я опишу, как создать зашифрованный zip файл на Linux.
3 января стартует курс «SQL-injection Master» © от команды The Codeby
За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.
На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.
Запись на курс до 10 января. Подробнее .
Первый метод
Инструмент командной строки zip имеет опцию шифрования. Алгоритмом шифрования, который использует zip, является потоковый шифр PKZIP. Об алгоритме PKZIP известно, что он небезопасный. Также тот факт, что пароль набирается и отображается как обычный текст, делает его ещё уязвимие.
Для создания зашифрованного zip файла с помощью zip:
Для распаковки zip файла, зашифрованного командой zip:
Второй метод
Файловый архиватор 7z может создавать архивы в формате zip с более безопасной схемой шифрования. Согласно официальному описанию, 7z поддерживает алгоритм шифрования AES-256 с генерацией ключей основанным на хеш алгоритме SHA-256.
Возможно, вас заинтересует статья "Как установить 7zip на Linux".
Для создания зашифрованного zip с помощью архиватора 7z:
Для распаковки zip файла, зашифрованного с помощью команды 7z:
Третий метод
Для создания зашифрованного сжатого tar архива с помощью GnuPG:
Для распаковки файла архива, зашифрованного с GnuPG:
Четвёртый метод
Если вы используете файловый менеджер Nautilus (Ubuntu) или Nemo (Mint) на вашей машине, вы можете с лёгкостью применить их для создания защищённого паролем файла zip.
Заполните имя архивного файла и выберите формат файла ".zip" (или ".7z" если у вас установлен архиватор 7z).
Нажмите «Другие параметры» и введите ваш пароль. Под графической оболочкой будет использована команда zip для создания зашифрованного архива.
Россыпью
Статья была бы не полной, если бы мы не упомянули такие утилиты как: bcrypt (кроссплатформенная утилита шифрования, использует алгоритм blowfish), gzip (может использоваться в паре с openssl), pigz (многопоточный gzip, при этом значительно быстрее gzip), gpg-zip (шифрует и подписывает файлы и каталоги).
1 декабря стартует зимний поток курса " Тестирование Веб-Приложений на проникновение " от команды codeby . Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 10 декабря включительно. Подробнее .
Если тебе захотелось зашифровать файл, то используй программы для шифрования файлов.
Пароль на архив мне захотелось..
gpg -c твой_архив.tar.gz
tar таких средств, насколько я знаю, не имеет.
Пароль — подразумевает шифрование, а архиватор шифровать не умеет, а вот gpg не умеет архивировать, но умеет шифровать. Используй их вместе
Тебе подойдет zip:
zip -P password file.zip file
tar занимается архивированием, а не шифрованием. Для шифрования можно использовать openssl, gpg.
Вот тебе несколько способов на любой вкус.
пароль на архив это и есть шифрование. tar склеивает, gzip жмет, gpg шифрует.
Поставь виндовс, он кажется умеет пароли на архивы.
Последнее исправление: sdio 22.02.15 14:40:43 (всего исправлений: 2)
и rar и 7zip умеет
вопрос конкретно о tar был.
Прятный бонус, gpg сжимает автоматом данные.
Я и говорю, поставь виндовс.
А tar не умеет, тар умеет собирать из нескольких файлов один. Ещё есть gzip, который умеет сжимать файлы. Ещё есть openssl и gpg, которые умеют шифровать файлы. И для расшифровки тебе таки понадобится пароль. Но из твоих комментариев я так и не понял, нужно ли тебе что-то шифровать и что этот твой пароль вообще должен делать.
Для любителей понаставить левых тегов в аду есть специальные пытки. Ты готов к ним?
TAR умеет только делать из кучи файлов один (с сохранением путей, атрибутов, прав доступа и т. д.). Он не умеет ни сжимать, ни шифровать (постановка пароля на архив имеет смысл только с шифрованием). Подразумевается, что этим будут заниматься другие программы. Например, после слияния файлов с помощью tar может быть запущен gzip.
Читайте также: