Tworzenie, kompresowanie i szyfrowanie archiwów

tar to stary (ale jary) program do tworzenia archiwów. Początkowo używany był do tworzenia archiwów na taśmach magnetycznych. Archiwum utworzone przy pomocy tar można potem skompresować przy pomocy programów bzip2 (.tar.bz2), Izma (tar.xz) lub innych. bzip2 i algorytm Izma są najczęściej używane, ze względu na szybkość i wydajność. Izma używany jest też przez program 7-zip. Skompresowane archiwa można następnie zaszyfrować programem GPG.

Podstawowe parametry dla tar:

  • -c utwórz archiwum tar
  • -f archiwum znajduje się w pliku, którego nazwa podawana jest w wierszu poleceń
  • -v informuj o tym, co aktualnie robisz. Wielokrotne podanie opcji -v (-vv) zwiększa szczegółowość informacji generowanych przez tar o aktualnie wykonywanym działaniu, ale w istotny sposób wpływa na szybkość przetwarzania danych.
  • -x rozpakuj archiwum
  • -t wyświetl zawartość archiwum
  • -j skompresuj archiwum przy pomocy bzip2 (.tar.bz2)
  • -J skompresuj archiwum przy pomocy lzma (.tar.xz)
  • -C przed wykonaniem jakiejkolwiek operacji zmień katalog bieżący na katalog podany po -C

Przykłady:

Spakuj katalog do archiwum

tar -cvf nazwa_archiwum.tar /ścieżka/do/katalogu (lub nazwa katalogu w bieżącym katalogu roboczym)

Rozpakuj archiwum w bieżącym katalogu roboczym

tar -xvf nazwa_archiwum.tar

Dodaj nowy_plik do istniejącego archiwum

tar -rvf nazwa_archiwum.tar nowy_plik

Pokaż zawartość archiwum

tar -tvf nazwa_archiwum.tar

Pobierz z archiwum plik. Jeżeli w ścieżce do pliku znajdują się spacje lub inne znaki, które mogą być zinterpretowane przez bash jako znaki specjalne całą ścieżkę umieszczamy w cudzysłowie. UWAGA: jeżeli w bieżącym katalogu roboczym znajduje się folder, który został zarchiwizowany pobierany plik nadpisze plik oryginalny! (domyślne ustawienie, które można modyfikować). Plik jest odtwarzany wraz z pełną ścieżką. Wszystkie foldery nadrzędne ze ścieżki, jeżeli nie istnieją, zostaną odtworzone.

tar -xf nazwa_archiwum.tar '/ścieżka/do/pliku/w/archiwum'

Pobierz z archiwum dwa katalogi. Jako parametr podajemy ścieżki (w archiwum) do katalogów.

tar -xvf nazwa_archiwum.tar '/ścieżka/do/katalog-1/' '/ścieżka/do/katalog-2/'

Utwórz archiwum i skompresuj przy pomocy gzip2

Utwórz archiwum i skompresuj przy pomocy lzma

tar -cJvf nazwa_archiwum.tar.xz /ścieżka/do/katalogu

Zaszyfruj archiwum skompresowane przy pomocy gzip2 używając GPG.

Parametry:

  • -c zaszyfruj szyfrem symetrycznym przy pomocy hasła
  • –no-symkey-cache – WAŻNE – nie zapamiętuj hasła podanego przy opcji -c

gpg zapamiętuje hasła podawane przy szyfrowaniu symetrycznym, aby operacja odszyfrowania na lokalnej maszynie nie wymagała od użytkownika wprowadzania hasła (wygodne, ale potencjalnie bardzo niebezpieczne). Żeby zablokować to zachowanie używamy parametru –no-symkey-cache

gpg -c --no-symkey-cache nazwa_archiwum.tar.bz2

Po zaszyfrowaniu pliku gpg dodaje na końcu nazwy rozszerzenie .gpg

Odszyfrowanie pliku zaszyfrowanego szyfrem symetrycznym do bieżącego katalogu. GPG powinien się domyśleć, że chodzi o odszyfrowanie pliku i poprosić o hasło.

gpg nazwa_archiwum.tar.bz2.gpg

Pełna wersja polecenia: -o (zapisz odszyfrowany plik tutaj) nazwa_pliku_wyjściowego -d (odszyfruj) nazwa_zaszyfrowanego_archiwum

gpg -o nazwa_archiwum.tar -d nazwa_archiwum.tar.bz2.gpg

Można zaszyfrować archiwum używając jednego z kluczy publicznych przechowywanych w repozytorium gpg (keyring). Trzeba jednak pamiętać, że odszyfrownie zaszyfrowanego w ten sposób pliku będzie możliwe tylko przy pomocy klucza prywatnego stanowiącego parę dla klucza publicznego użytego do szyfrowania, co w dalekiej przyszłości może być kłopotliwe (zmiana komputera, utrata repozytorium kluczy). Klucz publiczny wskazujemy poprzez podanie adresu e-mail powiązanego z tym kluczem. Oczywiście abyśmy mogli w przyszłości odszyfrować archiwum musimy użyć klucza publicznego, do którego posiadamy klucz prywatny. W podanym niżej przykładzie tworzymy zaszyfrowane archiwum nazwa_archiwum.tar.gpg używając do szyfrowania klucza publicznego skojarzonego z adresem poczty elektronicznej e-mail@tataija.eu a szyfrowany plik to nazwa_archiwum.tar (-o = –output; -r = –recipient; -e = –encrypt).

gpg -o nazwa_archiwum.tar.gpg -r e-mail@tataija.eu -e nazwa_archiwum.tar

Powyższe polecenie można skrócić do „gpg -e nazwa_archiwum.tar” wówczas gpg sam poprosi o wprowadzenie identyfikatora użytkownika (w postaci adresu e-mail) a nazwę pliku wyjściowego utworzy przez dodanie do nazwy pliku wejściowego rozszerzenia .gpg

Zaszyfrowany plik można podpisać elektronicznie dodając w poleceniu parametr –sign (-s). Możemy też zaszyfrować plik w taki sposób, by do odszyfrowania można było użyć zarówno klucza prywatnego jak i tajnego hasła. W tym celu do polecenia dodajemy parametr –symmetric (-c). Najpierw gpg poprosi nas o podanie tajnego hasła do zaszyfrowania pliku a potem o hasło do klucza prywatnego, którym zostanie podpisany zaszyfrowany plik.

gpg -s -c -o nazwa_archiwum.tar.gpg -r e-mail@tataija.eu -e nazwa_archiwum.tar

Przy odszyfrowywaniu tak zaszyfrowanego pliku zostaniemy poinformowani, że plik został podpisany, podpis jest prawidłowy, i otrzymamy szczegółowe informacje o kluczu użytym do podpisania i dacie złożenia podpisu.

Szczegółowy podręcznik: gnu tar || Podręcznik gpg: tutaj || Inne podręczniki gnu: tutaj