Ubuntu 10.04でtarコマンドを使って、いくつかのtar.gz(もしかしたらtar.bz2)ファイルを作成したいと思っています
ファイルをパスワードで保護したい
これを行うためのコマンドは何でしょうか(ググってみましたが、パスワードを使って圧縮ファイルを作成して解凍する方法を示しているものはありませんでした)
どなたか方法をご存知の方はいませんか?
145 morpheous 2010-07-12
このタスクには unix の哲学を適用しなければなりません
tarリングと圧縮はtar
とgzip
またはbzip2
の仕事で、暗号化はgpg
またはopenssl
の仕事です
Encrypt
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Decrypt
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
または gpg を使用して
% gpg --encrypt out.tar.gz
openssl-variant はシンメトリック暗号化を使用します。 gpg-variant はシンメトリックと非シンメトリック暗号化を組み合わせて使用します
zip (または 7z) ルートを使う場合: 基本的には openssl-variant と同じですが、パスワードを受け取る側に伝えなければなりません
172 akira 2010-07-12
ファイルをパスワードで保護したい場合は、コマンドラインから hand zip ユーティリティを使用してください
zip -e <file_name>.zip <list_of_files>
-e は zip ユーティリティに、中に記載されているファイルを暗号化するように要求します
Working example:
$ 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*
32 Antony Thomas 2012-06-17
これを行うためのいくつかの方法を紹介します。注意すべき点としては、圧縮と暗号化ツールを別々に使う場合は、暗号化されたデータは基本的に圧縮できないため、暗号化の前に必ず圧縮する必要があるということです
これらの例では、clear_text
というファイルを圧縮したり暗号化したりしています
Using gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpgはデフォルトでは暗号化の前に入力ファイルを圧縮しますが、-c
はパスワード付きの対称暗号化を使用することを意味します。出力ファイルはclear_text.gpg
になります。gpg
を使う利点の一つは、標準のOpenPGPフォーマットを使っているので、OpenPGPをサポートしている暗号化ソフトウェアであれば、どんなものでも復号化できるということです
Using mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
-z
オプションは圧縮します。デフォルトでは、clear_text.gz.nc
というファイルを出力します
Using bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcryptは、デフォルトでは暗号化する前に圧縮しますが、 -r
オプションは、入力ファイルが途中で削除されないようにするためです。出力ファイルはデフォルトではclear_text.bfe
と呼ばれます
gzip
とaespipe
を使う
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe はその名の通り、標準入力を受けて標準出力に aes 暗号化されたデータを出力するプログラムです。これは圧縮をサポートしていないので、入力を最初に gzip でパイプすることができます。出力は標準出力に送られるので、自分で選んだ名前のファイルにリダイレクトする必要があります。おそらく、あなたが求めていることを行うための最も効果的な方法ではないでしょうが、aespipe は汎用性の高いツールなので、言及する価値があると思いました
23 Graphics Noob 2014-05-01
7zipを使ってパスワードで保護されたアーカイブを作成することができます。コマンドライン(またはスクリプト)でパスワードを指定する方法は以下の通りです
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7zipは以下のようにSTDINからも読み込むことができます
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
zip ファイルの使用が必須である場合は、-t<type>
パラメータ (-tzip
など) を使って遊んでみるのもいいかもしれません
18 SaeX 2014-10-17
tar、gzip、bzip2 はいずれもパスワード保護をサポートしていません。zip のようなパスワード保護をサポートしている圧縮形式を使うか、GnuPG のような別のツールで暗号化してください
7 Ignacio Vazquez-Abrams 2010-07-12
Create with:
tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg
パスワードの入力を求められます
Decrypt with:
gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -
6 LHolleman 2017-05-23