暗号化 zip ファイル : やっぱり Sun がスキ! やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20061222 2006年 12月 22日 金曜日

暗号化 zip ファイル

Solaris User の皆さんに質問です。
最近パスワード付き(暗号化) zip ファイルを取り扱う機会が増えていませんか。
その際、皆さんは Solaris からうまくパスワード付き zip を扱えておりますでしょうか。
大半の人は、うまく扱えていないのでは無いかと思います。
なぜなら、現行の Solaris に付属されている zip/unzip コマンドは、パスワード付き zip の扱いをサポートしていません。
実際に扱おうとすると、以下の様なメッセージに出くわすかと思います。
 % /usr/bin/zip -e hoge.zip ./hoge.txt
 
 zip error: Invalid command arguments (encryption not supported)
 
 % /usr/bin/unzip encrypted.zip
 Archive:  hoge.zip
    skipping: au.txt                  encrypted (not supported)
このため、Solaris 大好きな皆さんも泣く泣く他の OS を使っているかと思います。
そんな皆さんに朗報です!
Sun もその事を認識しており、既に Solaris Nevada(OpenSolaris) では、パスワード付き zip を扱える zip/unzip バージョンを搭載しております。
しかしながら、現行の Sun Solaris では未だ対応できておりません。
そんな時は、ソースからコンパイルしてしまいましょう。
zip/unzip のソースは、以下のサイトから入手できます。

Info-ZIP

入手したソースの unix ディレクトリ配下にある Makefile を以下の様に編集します。
 % cd unix
 % vi Makefile
 ----- Makefile - unzip -----
 # UnZip flags
 CC = cc#       try using "gcc" target rather than changing this (CC and LD
    ↓
 # UnZip flags
 CC = gcc#       try using "gcc" target rather than changing this (CC and LD
 ----------------------------
 ----- Makefile - zip -----
 # (to use the Gnu compiler, change cc to gcc in CC)
 CC = cc
    ↓
 # (to use the Gnu compiler, change cc to gcc in CC)
 CC = gcc
 --------------------------
次に編集した Makefile を、unix ディレクトリの親ディレクトリにコピーします。
 % cp Makefile ..  
その後、その親ディレクトリで、以下のコマンドを実行します。
 % cd ..
 % /usr/ccs/bin/make generic
最後に make install を行えば完了です。
 % su
 パスワード:
 # /usr/ccs/bin/make install
尚、OS 標準ではないライブラリ等は参照していないので、zip/unzip バイナリを直接持ってくるだけでも問題ありません。
 % ~/bin/zip -e hoge.zip ./hoge.txt
 Enter password:
 Verify password:
 updating: hoge.txt (deflated 32%)
 
 % ~/bin/unzip encrypted.zip
 Archive:  encrypted.zip
 [encrypted.zip] hoge.txt password:
   inflating: hoge.txt
それでは皆さん、さらに快適な Solaris ライフをご堪能下さい。

投稿されたコメント:

[Trackback] ��� Solaris Nevada(OpenSolaris) �Ǥϡ��ѥ������...

Posted by Solaris User on 8月月 10日, 2007年 at 04:22 午後 JST #

コメント
  • HTML文法 不許可