zipコマンドでパスワード付き圧縮ファイルを生成する
はじめに
最近はめっきり使わなくなった zip ファイル形式。
圧縮率は gzip 、 bz 、 7z や Zsrtandard という圧縮アルゴリズムも登場していますが、未だに zip でファイルを公開してるサービスもあります。
そんな zip 形式の圧縮ファイルを生成するためのコマンド zip
を使って「パスワード付き zip ファイル」を生成する方法について紹介します。
※「パスワード付き zip ファイル」というネタを扱うと、炎上しそうでドキドキします※。
検証環境
今回の検証環境は Ubuntu 22.10 を利用しますが、他の Linux ディストリビューションであれば大きな違いはないと思っています。
zip
コマンドのインストール
もし zip
コマンドがインストールされていない場合には、 apt
コマンドでインストールしましょう。
インストール済みの場合には読み飛ばしていただいて構いません。
zip
コマンドでファイルを圧縮(パスワードなし)
圧縮
zip
コマンドでパスワードなしのファイルを生成します。
ここでは workdir/1.txt
、 workdir/2.txt
という 2 つのファイルを用意し、圧縮します。
圧縮ファイル workdir.zip
ができました。
展開
先ほど作成した zip ファイルを unzip
コマンドで展開します。
作業用ディレクトリ unzip/
を作成し、この中で展開して挙動を確認します。
zip
コマンドでファイルを圧縮(パスワードあり)
圧縮
今度は zip
コマンドでパスワード付きファイルを生成します。
先程同様 workdir/1.txt
、 workdir/2.txt
という 2 つのファイルを用意し、圧縮します。workdir/1.txt
、 workdir/2.txt
はすでに作成済みですので、先程のファイルを流用します。
パスワードを付与するにはzip
コマンド実行時に --encrypt
オプションを指定します。
パスワードの指定方法は 2 つあります。
1 つ目はユーザのインタラクティブな入力で指定します。
2 つ目はオプション --password YOUR_PASSWORD
の形式で指定します。
ただし、こちらの方法では Bash や Zsh の操作がコマンド履歴に情報が残ってしまいます 。
環境変数として指定する、履歴を残さないようにする、シェルに隠蔽するなど何らかの方法でパスワードが履歴に残らないように気をつけましょう 。
展開
展開方法はパスワードなしのケース同様、 unzip
コマンドを利用します。
作業用ディレクトリ unzip/
を作成し、この中で展開して挙動を確認します。
先ほどとの違いは、 unzip
コマンド実行時にパスワードの入力を求められる点です。正しいパスワードを入力しましょう。
ひとこと
再三ですが、 今どき 「パスワード付き zip ファイル」のネタを扱うのはドキドキしますが、こういう方法もあるよということで読み物として楽しんでください。
ディスカッション
コメント一覧
まだ、コメントがありません