Comment protéger par mot de passe un fichier .tgz avec tar sous Unix?

47

J'utilise la commande Unix tar comme suit pour archiver un répertoire et ses fichiers:

tar cvzf fileToTar.tgz directoryToTar

Existe-t-il un moyen de protéger le fichier .tgz avec un mot de passe? J'ai créé des fichiers ZIP protégés par mot de passe sous Windows, je suppose donc qu'Unix a les mêmes fonctionnalités. Des idées?

c12
la source

Réponses:

40

Utilisez cryptou gpgsur le fichier.

Exemples simples:

cat filename | crypt > filename.crypt

gpg -c –o filename.gpg filename

Christopher Neylan
la source
2
cela n'a aucun sens, où est le mot de passe?
Alexander Mills
3
@AlexanderMills La plupart des outils acceptant les mots de passe invitent l'utilisateur à le demander depuis le terminal plutôt que par un argument de ligne de commande, afin d'empêcher que le mot de passe n'apparaisse dans l'historique.
Daffy
37

Vous pouvez utiliser la commande:

zip -P password file.zip file

Ou mieux:

zip -e file.zip file

man zip
Panta
la source
Est-ce que zip en sait suffisamment pour balayer la section mot de passe de la ligne de commande au moment où elle est exécutée afin qu'elle ne s'affiche pas (ou ne s'affiche que pendant des millicsonds) dans un ps? C'est lisible par l'homme.
tgm1024
17

Ni le tarformat ni le gzformat ne prennent en charge de manière intégrée les fichiers protégés par un mot de passe.

Le zipformat Windows combine différentes fonctionnalités: compression (par exemple, gzip), archivage de plusieurs fichiers en un seul (par exemple, tar), cryptage (par exemple, gnupg) et probablement d’autres. Unix a tendance à avoir des outils individuels, dont chacun fait une chose et vous permet de les combiner.

L'équivalent Unix d'un .zipfichier protégé par mot de passe s'appellera probablement quelque chose comme foo.tar.gz.gpgou foo.tgz.gpg.

Et il existe des outils open-source zipet des unzipoutils pour Unix, bien qu'ils n'offrent peut-être pas toutes les fonctionnalités des versions Windows (je suis à peu près sûr que le nouveau .zipxformat n'est pas pris en charge).

Keith Thompson
la source
14

Vous pouvez utiliser gpg (= GnuPG):

gpg -o fileToTar.tgz.gpg --symmetric fileToTar.tgz

Cela vous demandera une phrase secrète.

Pour décrypter le fichier ultérieurement, procédez comme suit:

gpg fileToTar.tgz.gpg

Cela vous demandera, encore une fois, de saisir la phrase secrète.

thiagowfx
la source
1
Remarque: -cest l'abréviation de --symmetric, c'est-à-dire que vous utilisez le chiffrement symétrique par défaut, ce qui signifie que la même phrase secrète est utilisée à la fois pour le chiffrement et le déchiffrement. (Contrairement à l'asymétrique, qui implique des clés publiques et des clés privées.)
Evgeni Sergeev
8

Vous pouvez utiliser ccrypt .

Les choses peuvent être cryptées par un tube:

tar cvvjf - /path/to/files | ccrypt > backup.tar.bz2.cpt

Ou en place:

ccrypt backup.tar.bz2

Pour automatiser, vous pouvez enregistrer une clé de passe dans un fichier et utiliser cette clé de passe pour chiffrer:

ccrypt -k ~/.passkey backup.tar.bz2
c4baf058
la source