nDiki : 便利
2006年12月14日 (木)
■ TrueCrypt で USB メモリに Windows と Linux からアクセスできる仮想暗号化ドライブを

USB メモリといえば、他人の PC とデータをやりとりする際によく使われるメディアだ。
最近どんどん大容量化していることもあり、ついいろいろなデータを入れっぱなしにしがち。
- 「ファイルをもらうのに渡した USB メモリを、受け取って確認したら見られたくなかったファイルが入ったままだった。」
- 「USB メモリにファイル入れて渡すのだけれど、今入っている見られたくないファイルを消すの面倒だな。後でまた入れておきたいし。」
- 「紛失した時が心配」
など、そのまま入れておくのは不安なファイルもある。
ということでやっぱりいくつかのファイルは暗号化しておきたい。さて何かよい暗号化ソフトウェアはないだろうか。
- Windows でも Linux でも使えること。
- データをやりとりする可能性のあるグループごとに別の領域を用意できること。
- 暗号化ソフトウェアをインストールしていない Windows PC からでも、ファイルを取り出せること (インストール不要で復号できるソフトウェアを USB メモリに一緒に入れておけること)。
で調べたところ TrueCrypt が有名らしい。Windows と Linux の両方から使えるというのが良い。
ということで試してみた。
@ Linux 版
ライセンスの関係で Debian GNU/Linux には無いので、ビルドしてインストールする。
@ ビルド
まずはビルド。
tar zxvf truecrypt-4.2a-source-code.tar.gz cd truecrypt-4.2a/Linux fakeroot ./build.sh
@ インストール
次にインストール。apt-get install dmsetup してから ./install.sh を実行する。
# ./install.sh Checking installation requirements... Testing truecrypt... Done. Install binaries to [/usr/bin]: Install man page to [/usr/share/man]: Install user guide and kernel module to [/usr/share/truecrypt]: Allow non-admin users to run TrueCrypt [y/N]: y Installing kernel module... Done. Installing truecrypt to /usr/bin... Done. Installing man page to /usr/share/man/man1... Done. Installing user guide to /usr/share/truecrypt/doc... Done. Installing backup kernel module to /usr/share/truecrypt/kernel... Done.
@ 仮想ドライブボリュームファイルを作成
ここからは実際の利用。まず最初にボリュームファイルを作成する。
$ truecrypt -c vol.tc Volume type: 1) Normal 2) Hidden Select [1]: Filesystem: 1) FAT 2) None Select [1]: Enter volume size (bytes - size/sizeK/sizeM/sizeG): 128M Hash algorithm: 1) RIPEMD-160 2) SHA-1 3) Whirlpool Select [1]: Encryption algorithm: 1) AES 2) Blowfish 3) CAST5 4) Serpent 5) Triple DES 6) Twofish 7) AES-Twofish 8) AES-Twofish-Serpent 9) Serpent-AES 10) Serpent-Twofish-AES 11) Twofish-Serpent Select [1]: Enter password for new volume 'vol.tc': Re-enter password: Enter keyfile path [none]: TrueCrypt will now collect random data. Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Please move the mouse randomly until the required amount of data is captured... Mouse data captured: 100% Done: 125.85 MB Speed: 15.66 MB/s Left: 0:00:00 Volume created.
基本的にはデフォルトで OK。確保容量とパスワードはそれぞれ決めて入力する。
@ 仮想ドライブをマウントしてみる
マウントポイントを作成してマウントする。 自分の場合ロケールを ja_JP.UTF-8 にしているので、日本語ファイル名を読み書きするために -M utf8 しておく必要がある。
cd mkdir mnt truecrypt -M utf8,fmask=133 -u vol.tc mnt # マウント Enter password for '/home/naney/vol.tc': # パスワード入力
マウントができたら後は普通に読み書きができる。読み書きが終わったら、truecrypt -d でアンマウント。
truecrypt -l # マウントされているもののリスト truecrypt -d mnt # アンマウント
@ Windows 版
Windows 版は truecrypt-4.2a.zip を展開して、中に含まれているインストーラを使ってインストール。
TrueCrypt を起動して、先ほど作成したボリュームファイルとつけたいドライブ名を指定してマウントすると、うまく中身を読み書きすることができた。
@ トラベラーモード
また TrueCrypt にはトラベラーモードというものがある。 メニューから [Tools] -> [Traveller Disk Setup] を実行して、指定したいメディア(ディレクトリ)に、インストールせずに実行するのに必要なファイル群を配置することができる(オプションで autorun.inf を作ることも可能)。
これを実行して USB メモリに TrueCrypt を入れておけば、TrueCrypt をインストールしていない Windows PC 上でも TrueCrypt をトラベラーモードで実行してマウントできるようになる (ただし、管理者権限が必要)。
@ これから
母艦である Linux BOX からアクセスできるというのが便利。 Linux BOX に USB メモリを挿した後、truecrypt でマウントして Unison で同期してアンマウントまでの一連の処理を流れ作業でできるようにしたい。
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- ptexlive で UTF-8 pLaTeX2e 文書対応 (2010-09-09)
- Debian GNU/Linux で Dropbox (2008-09-16)
- Windows でも Linux でも動くタスク管理ツール Task Coach (2006-01-12)
- Unison + Zebedee (2004-06-11)
2006年12月15日 (金)
■ Perl スクリプトを PAR ファイルにして PAR リポジトリに登録する

PAR リポジトリから Perl モジュールをネットワーク配信するためには、以下の手順で PAR ファイルを作成する。
perl Makefile.PL make make test perl -MPAR::Dist -e blib_to_par
blib ディレクトリ以下のファイルもとに PAR ファイルが作成されるので、でき上がった PAR ファイルを リポジトリに登録すれば良い(PAR::Repository でビルド済み Perl モジュールをネットワーク配信)。
ではちょっとした Perl スクリプトを PAR リポジトリからロードして使えるようにするにはどうすればよいか。もちろん h2xs などで一式そろえ make して blib ツリーを作るようにすればいいが、たった 1 つのスクリプトファイルだけの時などは大袈裟だ。
この場合は pp でいける。
echo 'print "hello world!"' > myscript.pl pp -o myscript.par -p myscript.pl parrepo inject -r /tmp/PAR myscript.par -v 1.00 \ -a MSWin32-x86-multi-thread -p 5.8.8 \ --any-arch --any-version
スクリプトのメタデータがないので、parrepo に登録する際に明示的にオプションで指定してあげる必要がある。
- -v
- プログラムのバージョン番号
- -a
- アーキテクチャ
- -p
- Perl のバージョン
- --any-arch
- アーキテクチャ非依存で動くならば指定しておく
- --any-version
- 任意の Perl のバージョンで動くならば指定しておく。
PAR ファイル(にした Perl スクリプト)が --any-arch で --any-version であっても、-a と -p は必須だ (PAR::Repository の中にアーキテクチャ/バージョンつきで登録された上でシンボリックリンクの形で any 扱いにされるため)。
これで PAR リポジトリからスクリプトを実行できるようになる。 スクリプトの更新もリポジトリ側で行うだけで良くなる。
perl -e "use PAR { repository => 'http://www.example.com/PAR/',
run => 'myscript.pl'}"
お好みで実行形式ファイルにしておけば Perl をインストールすることなく実行できるようになるので便利。
pp -o myscript.exe -M PAR::Repository::Client \
-e "use PAR { repository => 'http://www.example.com/PAR/',
run => 'myscript.pl'}"
ちなみに PAR リポジトリを使わずに、直接 PAR ファイルを指定して実行できることもできる。
perl -e "use PAR { file => 'http://www.example.com/myscript.par', \
run => 'myscript.pl' }
ちょっとした用途ではこちらでも良いけれど、アーキテクチャ別の管理やらモジュールの管理やらを考えると PAR リポジトリを作ってしまった方が楽。
- PAR::Repository でビルド済み Perl モジュールをネットワーク配信 (2006-12-12)
- 「依存関係検査のしにくいモジュール」に依存するスクリプトをPARで実行形式化する (2005-03-08)
- Module::Build でソースパッケージング (2005-08-24)
- Plagger で Twitter のあれこれをメールで通知 (2008-12-25)
- WiKicker の Makefile.PL を Module::Install ベースに (2006-02-10)
2006年12月16日 (土)
■ USB メモリへのポータブルアプリケーションの詰め込み開始

一昨日購入した USB フラッシュメモリに、ポータブルアプリケーションを詰め込んでいく。
@ PStart
まずはランチャとして有名どころの PStart をインストール。 GNU GPL な ASuite と迷ったがまずは PStart にしてみた。
@ 追記
ASuite 1.3.1 も試してみたが、日本語がうまく表示されなかった(2006年12月18日)。
@ UnplugDrive Portable
USB メモリなどを安全に停止しするためのツール。 PStart を終了させる際に自動的に呼び出すように設定しておけば、「ハードウェアの取り外し」よりも手軽に USB メモリを抜ける状態にできる。 半透明ダイアログで表示するなど、見た目的に格好良い。
1度使うとクセになる便利さ。
@ 暗号化
先日試してみた TrueCrypt をトラベラーモードで入れておく。
- USB メモリの同期とポータブルアプリケーションの再整備 (2009-01-23)
- そろそろ Google Chrome を Windows のメイン Web ブラウザにするか (2010-02-15)
- DropboxPortable で必要な時に USB メモリ内を最新環境に同期 (2009-10-12)
- Linux で入力して Windows で参照できるパスワード管理ツール KeePass (2006-12-31)
- 1インチポータブル HDD HDMC-U12 インプレッション (2006-12-28)
2006年12月20日 (水)
■ NSIS 2.22 は Linux でビルドできず

Windows 用のインストーラ作成ツール NSIS は、スクリプトベースでインストーラを作っていくのが1つの特徴である。 NSIS スクリプトは、さすがインスーラ作成用だけあって
- ファイル処理 (コピー、削除、……)
- レジストリの読み書き
- プログラムの実行
その他システム関連のコマンドが充実している。 コンパイルするとかなりコンパクトな実行形式ファイル (EXE) を生成してくれるので、ちょっとした処理を自動化するには便利である。
今回 USB メモリに入れておいて、そのドライブ上のいくつかのディレクトリに PATH が通った状態でコマンドプロンプトを開くツールを NSIS で書いておこうかと思って試す。
NSIS は POSIX ベースシステムでビルドし実行でき、NSIS スクリプトをコンパイルできる。 ということで作業を Linux で作業をしていたのだが、どうやら System::Call が使えないようだ(スクリプトのコンパイルに失敗する)。
Debian パッケージが古いせい (2.19-1.1) かと思い、ソースパッケージをビルドしてみたらまさに System 関連らしいところでコンパイルがこけている (そういう背景で Debian パッケージがアップデートされていない?)。
ということでどうも最新の NSIS は Linux では駄目っぽい。
しょうがないので久しぶりに Wine。
Wine 上に NSIS 2.22 をインストールして makensis.exe を実行してみたところ試した範囲ではうまく動いている。 ついでにでき上がった実行可能ファイルも Wine 上で試せる。
しばらくは Wine 上で NSIS スクリプト書きを楽しむことにしよう (最終的には Windows 上でコンパイルしなおして動作確認するのだけれども)。
- TrueCrypt で USB メモリに Windows と Linux からアクセスできる仮想暗号化ドライブを (2006-12-14)
- xyzzyを読み取り専用メディアから起動する (2004-07-28)
- Linux 上で Windows 用インストーラを作成する (2004-10-14)
- PAR::Repository でビルド済み Perl モジュールをネットワーク配信 (2006-12-12)
- NSIS が再び Linux でコンパイルできるように (2005-01-08)
2006年12月25日 (月)
■ クリスマスプレゼントに「はらぺこあおむし」のペンスタンドをいただいた

研究開発チームのメンバの1人から、クリスマスプレゼントをいただいた。 誕生日プレゼントのお返しということらしい。感謝。
ステーショナリー好きということを知ってか、はらぺこあおむし (The Very Hungry Caterpillar)のペンスタンドだ。素敵。ナイス。
大仏に魅かれて「プラレール 江ノ電 海の見える旅セット」をチョイスしてしまった自分とは大違いだ。
デスクの上に転がっている常用ボールペンを指しておくのにとても便利。
「可動部はないの?」 -- ぐらさん
ソコ。すぐにそういう方面に走らないように。
- どこでもダーツセット - 誕生日プレゼント (2006-04-26)
- でかカール チーズ味 おまけつき - 誕生日プレゼント (2006-04-26)
- すぐには6面揃えられません - 誕生日プレゼント (2008-04-30)
- 今度は動くぞ。はらぺこあおむし - 誕生日プレゼント (2007-05-07)
- 今日のさえずり: サザエさん観てないせい? (2010-05-24)
2007年1月5日 (金)
■ USB コネクタの向きを変えるアダプタ サンワサプライ AD-3DUSB8

年末に買ったポータブル HDD HDMC-U12 であるが USB コネクタの向きに自由度がないため、ノート PC への直挿しは(ほとんどの機種で)無理がある。
このため延長ケーブル等を使うのが無難そうだ。 ということで、短い USB 延長ケーブルを買いにいったのだが、サンワサプライの 3D USB アダプタ (AD-3DUSB8)というのが目についたので、こちらをチョイスしてみた。
3軸で回転できるので向きの変更の自由度が高い。
と思って ThinkPad X31 に挿したところ……どうがんばっても HDMC-U12 が逆さまになる形にしか挿すことができない。 可動域が 180°/180°/90°なため、任意の向きにできる訳ではないのである。 この向きだとアクセスランプが見えないため、イマイチな状態。
回転もちょっと渋く、いろいろな環境でフレキシブルに使うには今一歩という出来である。 コネクタを曲げたい向きとマッチすれば便利なのかもしれない。
[ 製品レポート ]
- 1インチポータブル HDD HDMC-U12 インプレッション (2006-12-28)
- バックアップ用に廉価ポータブルハードディスクを購入 (2009-08-21)
- ケータイに挿しっぱなしの microSDカードと小型カードリーダ (2009-02-06)
- ノート PC の HDD 交換用に USB 外付け 2.5インチ HDD ケース (2006-07-28)
- マイッチング HUB (2006-03-13)
2007年1月6日 (土)
■ connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また Unison や Subversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事、Subversion の記事)。
しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。
調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。
[クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
gw.example.com 192.168.1.x
@ インストール
Debian なので apt-get で。
apt-get install connect-proxy
@ SSH の設定
~/.ssh/config に以下の行を追加。
Host 192.168.1.* ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p
192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。
@ SSH を SOCKS サーバにする
autossh を使って SSH で SOCKS サーバを立てる
autossh -N -f -D8090 gw.example.com
これで準備 OK。
@ 使ってみる
@ SSH 接続
ssh 192.168.1.x
で接続を確認。
@ Konqueror (KDE)
fish://192.168.1.x/
で直接ブラウズ、読み書き可能なことを確認。
@ Unison
普通に 192.168.1.x と同期できることを確認。
@ CVS
普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認
@ Subversion
普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に
FATAL: output (local) failed, errno=32
というエラーがでる。
@ 便利
Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。
これでかなり手軽に接続、転送できるようになった。 便利、便利。
@ 追記 (2009年2月23日)
一時的に connect.c を通らないで直接接続する際には 'ssh -o ProxyCommand=none' とする。
例: SVN_SSH='ssh -o ProxyCommand=none' svn update
- FoxyProxy と autossh で社内 Web ページを閲覧 (2006-06-03)
- OpenSSH for Windows (2004-08-05)
- Subversion で SSH port forwarding 経由での svn+ssh (2006-06-29)
- Debian Linux kernel 2.6.23 をビルドする。 (2007-12-23)
- Debian Linux kernel 2.6.26 にアップデート (2009-02-07)
2007年1月26日 (金)
■ EasyPG で Emacs から .gpg ファイルを透過的に読み書き

パスワードを含むアカウント情報などは今のところ、テキストファイルに書いて GnuPG で暗号化して記録している。 ……のはずなのだが、面倒なので GnuPG かけてないファイルも結構あったりして実はまずい。
Emacs で EasyPG を使うと gpg 拡張子を持ったファイルは自動的に暗号化/復号化してくれるようになって便利らしい。
例えば example.gpg という名前で新しいバッファを作りテキストを入力する。 ここで保存しようとすると暗号化する相手の鍵の選択画面が出る。自分の鍵で復号できればよいのでそのまま [OK] を選ぶ。 そうすると暗号化して保存してくれる。
逆に .gpg で終わるファイルを開くとパスフレーズの入力が求めらる。 正しく入力すると復号化されたテキストがバッファに表示される。 再編集して保存する場合も先と同様に暗号化の手順が出るので、また暗号化した状態で保存することができる。
easypg-0.0.9-1 Debian パッケージをインストールして使ってみた。 便利便利。
ただ emacs-snapshot 20070122-1 (22.0.92.1) だと暗号化の際 coding の処理が正しくされないのか日本語を含んでいると文字化けしたテキストが暗号化されてしまい、復号化してももはや読むことができない。 ということで、ここしばらく Emacs 22 を使っていたのだけれど、Emacs 21 に戻すことにした。
こちらでは問題なく動作。
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイルを検索 (2006-08-08)
- Linux で入力して Windows で参照できるパスワード管理ツール KeePass (2006-12-31)
- Notepad++ で perltidy する (2011-03-01)
- Evernote 使用開始 (2009-03-03)
- Linux 上で Flex 2 SDK を使った Flash コンテンツ開発を開始 (2007-09-11)
■ 久しぶりに SSH の新しい鍵を作成し、複数利用できるように設定

仕事であるサーバへアクセスするのに、 SSH の公開鍵を送るように頼まれた。 そういえば今までずっと同じ鍵を使い続けていたけれど、いちおうこういのは管理上分けておいた方がいいかもしれない。
ということでかなり久しぶりに鍵を作成。5年ぶりぐらい?
@ 鍵の作成
ssh-keygen -C <メールアドレス> -f id_rsa.hogehoge
@ リモートホストの authorized_keys への登録
手元のいくつかのサーバも新しい鍵を使えるように authorized_keys に追加しておく。 ssh-copy-id コマンドというものを今回初めてしった。 リモートホスト上の ~/.ssh/authorized_keys に、ローカルホストから直接公開鍵を追加することができる。こんな便利なものがあったとは。
ssh-copy-id -i ~/.ssh/id_rsa.hogehoge naney@サーバ名
@ config への登録
デフォルトとは異なる新しい名前で作ったこの鍵もリモートホストへの接続に使えるようにするため、ローカルの ~/.ssh/config に設定を追加しておく。
IdentityFile ~/.ssh/id_rsa.hogehoge
@ keychain への追加
それと ~/.profile の中で呼んでいる keychain の引数にも ~/.ssh/id_rsa.hogehoge を追加。
- 特定の Git リポジトリだけ読み書きできる SSH 鍵を作る (2012-03-08)
- さくらのレンタルサーバ設定: SSH (2009-10-28)
- TortoiseSVN と svn+ssh (2004-07-26)
- [ Debian ] shfs でSSH接続されたリモートホストのディレクトリをマウント (2004-02-04)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
2007年1月31日 (水)
■ BBモバイルポイントを使ってみた

そういえば今契約しているプロバイダでは、ソフトバンクテレコム提供している公衆無線 LAN サービス「BBモバイルポイント」を2007年3月31日まで無料で利用できるようになっている。
マクドナルドにきたついでに、接続してみた。 最初に近くの違うアクセスポイントにつながってしまったというミスはあったものの、無事接続。
- SpinNet 会員 BBモバイルポイント2007年6月末まで無料 (2007-04-02)
- spモード契約で家族間無料プッシュ受信メール環境 (2010-09-01)
- 基本料金0円の間に公衆無線 LAN サービス Wi2 300 申し込む (2009-07-29)
- パルディオ用 PHS 通信カード DC-6S を購入 (1999-09-22)
- 今日のさえずり: キュアサンシャインと機械鳥 (2010-08-29)
2007年2月2日 (金)
■ DiKicker に grep 検索機能を追加

DiKicker には自動リンクベースの記事串刺し表示機能があって、同じキーワードを含む記事をまとめて読むことができる。 結構便利なのだが、この機能ではキーワードの設定は Blog の書き手に委ねられている。
社内で DiKicker を一部使ってもらっているのだけれども、それら他人の Blog を読んでいると「あのキーワードで串刺し表示したいな」と思うことがしばしばあることに気がついた。 やはり任意の文字列で串刺し表示する機能が欲しい。
書き手にとっても「自動リンクキーワードにするような文字列ではないけれども、串刺しで読みたい/探したい/見せたい」と思うことが少なからずある。
@ grep ベース
実現には全文検索を行う必要があるが「設置・運用の手間」「ディスク容量」という点から、事前にインデックスを生成するような方法は今回は避けようと思う (www.naney.org 上で自分が使う上での制約からくる理由が一番大きかったりする)。
ということで今回は grep 型で実装することにした。 もともと WiKicker の方の検索機能も現在のところ grep 型である。 WiKicker では自前で WikiPage をスキャンしているが、DiKicker では grep コマンドに任せることにした。 こういうのは専用の grep を使った方が速いはず。呼び出しは
grep -Flre $escaped_string dir...
というオプション指定。Web ページとしてのページングなどは、自動リンクによる串刺し表示機能のものを流用。
で試したところ www.naney.org サーバでは、load averages が 1 以下の時でだいたい50秒前後。対象ファイル数は 2800弱。予想より時間がかかる。
ただし1回実行した後、ファイルがファイルシステム/OSのメモリ上にのっている状態では 0.1秒程度で完了する。
検索結果ページの permalink が検索エンジンにそれなりに捕捉されて、定期的にアクセスがあるようになれば、ファイルがメモリにのっている割合が増えるであろうから平均して実用に耐えられる速度が出るかもしれない。
- Evernoteデベロッパーズミーティング (2010-10-01)
- WiKicker 0.420 リリース - 変更いろいろ (2007-05-30)
- 私的10大ニュース2004 [ web ] (2004-12-31)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
- [ WiKicker ] Memcached を使った検索結果のキャッシング (2004-01-15)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.261887s / load averages: 2.21, 2.64, 2.19
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)






◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox