zip形式で圧縮したファイルにパスワードを設定する方法

CentOSでパスワード付きの圧縮ファイル(zip形式)を作成する方法です。

圧縮

「zip」コマンドを使用することで、zip形式の圧縮ファイルにパスワードを設定することが出来ます。(gzipではパスワードを設定できませんので注意してください)

システムにパッケージがインストールされていない場合は、「yum」等でインストールを行ってください。

# yum install zip

書式

「zip」コマンドで圧縮する際に「-e」オプションを指定することで、圧縮ファイルにパスワードを設定することが出来ます。

zip -e 圧縮ファイル 対象データ

使用例

「zip-test」というディレクトリに5ファイルを作成しましたので、このファイルを圧縮してパスワードを設定していきます。

$ ls zip-test/
file1  file2  file3  file4  file5

「-e」オプションを付けて「zip」を実行するとパスワードの入力を求められるので、「Enter password:」に設定したいパスワードを入力します。

次に「Verify password:」に再度パスワードを入力して、パスワードに間違いがなければ圧縮ファイルにパスワードが設定されます。

$ zip -e test_files file*
Enter password:
Verify password:
  adding: file1 (stored 0%)
  adding: file2 (stored 0%)
  adding: file3 (stored 0%)
  adding: file4 (stored 0%)
  adding: file5 (stored 0%)

パスワードが一致しない場合

「Enter password:」と「Verify password:」で入力したパスワードが一致しなかった場合は、「password verification failed」といったパスワード検証の失敗エラーが表示されます。

$ zip -e test_files file*
Enter password:
Verify password:

zip error: Invalid command arguments (password verification failed)

フォルダを圧縮(-r オプション)

フォルダをパスワード付きで圧縮したい場合は「-e」オプションの他に、「-r」オプションもあわせて指定する必要があります。

$ zip -er zip-test zip-test/
Enter password:
Verify password:
  adding: zip-test/ (stored 0%)
  adding: zip-test/file1 (stored 0%)
  adding: zip-test/file2 (stored 0%)
  adding: zip-test/file3 (stored 0%)
  adding: zip-test/file4 (stored 0%)
  adding: zip-test/file5 (stored 0%)
  adding: zip-test/test-files.zip (stored 0%)

「-r」オプションを使用しなかった場合

「-r」オプションを指定しなかった場合は、フォルダだけで中身が空っぽの圧縮ファイルが作成されてしまいます。

$ zip -e zip-test zip-test/
Enter password:
Verify password:
  adding: zip-test/ (stored 0%)

圧縮時のログにも中のファイルが含まれていません…

コマンド上でパスワードを設定(-P オプション)

「-P」オプションを使用すると、コマンド内でパスワードを設定することが出来きます。(「Enter password:」といったパスワード入力状態にならず、パスワードをすることが出来ます)

zip -P パスワード 圧縮ファイル 圧縮対象ファイル

「passtest」というパスワードを指定してファイルの圧縮を行うには、下記のようにコマンドを実行します。

$ zip -P passtest test_files *
  adding: file1 (stored 0%)
  adding: file2 (stored 0%)
  adding: file3 (stored 0%)
  adding: file4 (stored 0%)
  adding: file5 (stored 0%)

これで、「Enter password:」といったパスワード入力状態にならずパスワードをすることが出来ます。

解凍

パスワードが設定されたzipファイルを解凍する場合は「unzip」コマンドを使用します。

システムにパッケージがインストールされていない場合は、「yum」等でインストールしてください

# yum install unzip

書式

「unzip」コマンドで解凍したいファイルを指定するだけで、パスワード付きの圧縮ファイルを解凍することができます。

unzip 圧縮ファイル

使用例

「unzip」コマンドで解凍を行うと、パスワードの入力を促されるのでパスワードを入力すると、解凍がはじまります。

$ unzip test_files.zip
Archive:  test_files.zip
[test_files.zip] file1 password:
extracting: file1
extracting: file2
extracting: file3
extracting: file4
extracting: file5

ログ上ではfile1に対してパスワードの入力を求められていますが、そこにパスワードを入力することでそれ以降はパスワードの入力の必要はりません。

パスワードを指定して解凍(-P オプション)

圧縮時と同様に「-P」オプションを使用することで、「unzip」コマンドを実行する際にパスワードを指定して解凍を行うことが出来きます。

unzip -P パスワード 圧縮ファイル

「passtest」というパスワードが設定されたファイルを解凍してみます。

$ unzip -P passtest test_files.zip
Archive:  test_files.zip
 extracting: file1
 extracting: file2
 extracting: file3
 extracting: file4
 extracting: file5

「unzip」コマンドを実行した後に、パスワードの入力を求めらずに解凍することが出来ました。

シェアする