Je veux créer des fichiers tar.gz (et éventuellement tar.bz2) à l’aide de la commande tar sur Ubuntu 10.04.
Je veux protéger le fichier avec un mot de passe.
Quelle est la commande pour faire cela (j'ai googlé, mais rien trouvé qui montre comment créer et extraire des fichiers compressés en utilisant un mot de passe).
Est-ce que quelqu'un sait comment faire cela?
vous devez appliquer la philosophie unix à cette tâche: un outil pour chaque tâche.
tarring and compression est un travail pour tar
et gzip
ou bzip2
, crypto est un travail pour gpg
ou openssl
:
Crypter
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Déchiffrer
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
Ou en utilisant gpg
% gpg --encrypt out.tar.gz
la variante openssl utilise le cryptage symétrique, vous devez informer le destinataire du mot de passe utilisé (ou "clé"). la variante gpg utilise une combinaison de chiffrement symétrique et asymétrique, vous utilisez la clé de la partie destinataire (ce qui signifie que vous n'avez pas à indiquer de mot de passe à qui que ce soit) pour créer une clé de session et chiffrer le contenu avec cette clé.
si vous choisissez la route Zip (ou 7z): c'est en gros la même chose que la variante openssl, vous devez informer le destinataire du mot de passe.
Si vous souhaitez uniquement protéger les fichiers par un mot de passe, utilisez l'utilitaire manuel Zip via la ligne de commande.
Zip -e <file_name>.Zip <list_of_files>
-e demande à l'utilitaire Zip de chiffrer les fichiers mentionnés dans
Exemple de travail:
$ touch file_{0,1}.txt # creates blank files file_0 & file_1
$ Zip -e file.Zip file_* # ask Zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*
Voici quelques façons de le faire. Une chose à noter est que si vous utilisez des outils de compression et de cryptage distincts, vous devez toujours compresser avant le cryptage, car les données cryptées sont essentiellement non compressibles.
Ces exemples compressent et chiffrent un fichier appelé clear_text
.
Utiliser gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg compressera le fichier d'entrée avant le chiffrement par défaut, -c
signifie utiliser le chiffrement symétrique avec un mot de passe. Le fichier de sortie sera clear_text.gpg
. L’utilisation de gpg
présente l’un des avantages de l’utilisation des formats OpenPGP standard. Ainsi, tout logiciel de chiffrement prenant en charge OpenPGP pourra le déchiffrer.
Utiliser mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
L'option -z
compresse. Par défaut, cela génère un fichier appelé clear_text.gz.nc
.
Utiliser bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt se compresse avant de chiffrer par défaut, l'option -r
permet d'éviter la suppression du fichier d'entrée dans le processus. Le fichier de sortie s'appelle clear_text.bfe
par défaut.
Utiliser gzip
et aespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
cela ressemble à un programme, un programme qui prend une entrée sur stdin et génère des données cryptées sur une sortie standard. Il ne supporte pas la compression, vous pouvez donc diriger l’entrée via gzip en premier. Comme la sortie va sur stdout, vous devrez le rediriger vers un fichier avec le nom de votre choix. Ce n’est probablement pas le moyen le plus efficace de faire ce que vous demandez, mais aespipe est un outil polyvalent, j’ai donc pensé que cela valait la peine d’être mentionné.
Vous pouvez utiliser 7Zip pour créer votre archive protégée par mot de passe. Vous pouvez spécifier le mot de passe sur la ligne de commande (ou dans un script) de la manière suivante:
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7Zip peut également lire STDIN comme suit:
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
S'il est obligatoire d'utiliser des fichiers Zip, vous pouvez jouer avec le paramètre -t<type>
(par exemple, -tzip
).
Ni tar, ni gzip, ni bzip2 ne prennent en charge la protection par mot de passe. Utilisez un format de compression tel que Zip ou cryptez-le avec un autre outil tel que GnuPG.
Créer avec:
tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg
Il vous demandera un mot de passe.
Décrypter avec:
gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -