How do I password protect a .tgz file with tar in Unix?
I'm using the Unix tar command as follows to tar up a directory and its files:
tar cvzf fileToTar.tgz directoryToTar
Is there a way to password protect the .tgz file? I've created password-protected ZIP files on Windows so I would assume Unix has the same capability. Any ideas?
Use crypt
or gpg
on the file.
Simple examples:
cat filename | crypt > filename.crypt
gpg -c –o filename.gpg filename
You can use command:
zip -P password file.zip file
Or better:
zip -e file.zip file
man zip
You can use gpg (=GnuPG):
gpg -o fileToTar.tgz.gpg --symmetric fileToTar.tgz
This will prompt you for a passphrase.
To decrypt the file later on, just do a:
gpg fileToTar.tgz.gpg
This will prompt you, again, for the passphrase.
Neither the tar
format nor the gz
format has built-in support for password-protecting files.
The Windows zip
format combines several different piece of functionality: compression (e.g. gzip), archiving multiple files into one (e.g. tar), encryption (e.g. gnupg), and probably others. Unix tends to have individual tools, each of which does one thing well, and lets you combine them.
The Unix equivalent of a password-protected .zip
file would probably be called something like foo.tar.gz.gpg
or foo.tgz.gpg
.
And there are open-source zip
and unzip
tools for Unix, though they may not provide all the capabilities of the Windows versions (I'm fairly sure the newer .zipx
format isn't supported).
You can use ccrypt.
Things can be encrypted by a pipe:
tar cvvjf - /path/to/files | ccrypt > backup.tar.bz2.cpt
Or in place:
ccrypt backup.tar.bz2
For automating, you can save a passkey into a file and use this passkey to encrypt:
ccrypt -k ~/.passkey backup.tar.bz2