本文でも説明しているように、ディレクトリもファイルの一種で どるようになっているのです。 sys/kern/vfs-syscalls. c の以 クを作成するときには、カーネル内でシンポリック・リンクをた リック・リンクのハードリンクは作れませんでした。ハードリン この図は NetBSD 2.99.10 での例ですが、残念ながらシンポ ハードリンクができてしまいました。 が・・・・・・おや、 symlink-l. txt が参照している link-2. txt への れを見ると、ⅲコマンドはふつうに成功しているようにみえます ができるのでしようか。実行してみた様子を図 B に示します。 ハードリンク ( ややこしいですね ) も、 ln コマンドで増やすこと ていることが分かりました。それでは、シンポリック・リンクの さて、シンポリック・リンクもファイルの名前と実体力分かれ の箱 " なのですね。 には中身がありません。シンポリック・リンクの実体は、空っぽ は、正確には図 A のようになります。シンポリック・リンクの箱 のメタ情報のなかに言泉されています。ですから、図 7 の上半分 存しておく必要があります。この情報は、、中身 " ではなく、、、箱 " シンポリック・リンクの場合、参照するファイル名をどこかに保 です。 に説明するファイルの所有者や所有グループ、パーミッションなど するさまざまなメタ情報カ第当杢されています。具体的には、次回 身 " になります。一方、データを収容する、箱 " には、データに関 しています。たとえば、皆さんがエデイタで作成したデータは、、中 本文では、ファイルの実体を、箱 " と、中身 " というふうに表現 とは何か " という話から始めなければなりません。 クの実体とはいったいなんでしようか。それには、、、そもそも実体 んとファイルの実体があります。それでは、シンポリック・リン ルとして扱います。シンポリック・リンクも例外ではなく、ちゃ す。ディレクトリだけでなく、 UNIX ではあらゆるものをファイ 図 B ls —l のシンポリック・リンクのハードリンクを作る 連載 / シェルの魔術ー 0 シンボリック・リンクの実体 15 : 11 ー 1 15 : 11 10 Oct 18 : 16 symlink—l . txt ー > li k ー 2 . txt ← 1 ⅲ k ー 2. txt へのハードリンクになってる ! 52 Oct 下の部分カ駭当するコードです ( 誌面の都合上、で折り返して int / * ARGSUSED * / います ) 。 sys-link(), v, retval) struct Iwp * 1 ; VOid register—t *retval; NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE , SCARG (uap , path) , p) ; この FOLLOW の部分を NOFOLLOW にすると、シンポ リック・リンクのハードリンクカ乍成できるようになります。 なお、比較的新しい FreeBSD では同様に作成できませんが、 NetBSD 1.6.2 では作れるようです。ほかにも、シンポリック・ リンクのハードリンクカイ乍成できる OS があるかもしれません。 図 A シンポリック・リンクの実体 シンホリック・リンク ⅱ n k-2. txt symlink-l . txt ファイルのメタ情報 ⅱ n k-2. txt lobal- glOba set-ter set-la $ ls ー 1 total 2 lrwxr—xr—x 1 naoto naoto 1 naoto aoto $ ln symlink—l . txt symlink 52 Oct 10 Oct ー 2 . txt $ ls total lrwxr— 4 xr—X 2 1 2 naoto naot 0 naot 0 naot 0 naot 0 0 52 Oct 9 9 9 9 9 1ink—2. txt 18 : 16 symlink—l . txt ー > 1ink—2. txt 1ink—2 . txt sym1ink—2. txt ←ー s オプションなし 20 . ・ 39 るとディレクトリ・ファイルの中身を、 ☆ ァイル名を含めてすべて表示してくれます。 . " から始まるフ 今回はファイルやディレクトリの仕組みについて説明し ました。一気にファイルの属性まで復習してしまいたかっ 176 たのですが、ちょっとゆっくりめの説明になったのでたど り着けませんでした。というわけで、次回はファイルの属 性について復習します。 ( もりしま・なおと奈良先端科技術大学院大学 ) UNIX MAGAZINE 2004. 12
連載 / シェルの竊ー① 図 4 ファイル名がいつばい たしかに 2 になっている ー 1 すべてファイルの名前 図 5 ファイル名 ( ハードリンク ) を消す 残りのハードリンク link-l . txt link-2. txt link-3. txt 図 6 ファイルの名前の数 set-la set-ter glOba lObal- ファイルの実体 naoto 52 Oct naoto 52 Oct link-l .txt link-3. txt link-2. txt 9 15 : 11 1ink—3. txt 9 15 : 11 1ink—2. txt set-la set-ter glOba lobal- ( 消えない ) ファイルの実体 $ ls total 4 2 naoto 2 naoto ↓ データは同じです ( 同一の実体を指しているのですから当 然ですね ) 。また、データを変更したい場合にも、いずれの ファイルの名前を消す 名前も利用できます。 rm コマンドのオンライン・マニュアル rm ( 1 ) をみる を削除すると、ほかのファイル名はどうなるのでしようか ? ると思います。たとえば、 rm コマンドで上記のⅱ nk ー 1. txt ふだんの作業で、、ファイルを消す " 操作をすることがあ と、以下のような謎杢があります 1 。 remove directory entries $ unlink link—l . txt 消すコマンドなのです。 コマンドや以下に示す unlink コマンドは、ファイル名を 、、ハードリンクを消す " という操作があります。つまり、 rm では、、ファイル ( の実体 ) を消す " 操作はなく、代わりに イルを削除するという言当はありません。じつは、 UNIX directory entries の部分はあとで説明するとして、ファ 図 7 ファイルに別名 ( シンポリック・リンク ) を付ける symlink-l . txt ⅱ n k-2. txt link-3. txt - シンポリック・リンク 50 ト「 glOba 引 Oba ト ファイルの実体 、ハードリンク $ ls 1ink—2. txt 1ink—3. txt この例では link-l. txt というハードリンクを消してい ますが、ファイルの実体を消しているわけではありません。 1ⅲkー2. txt と 1ⅲkー3. txt は同じファイルの実体を指してい ますから、これらのファイル名を使えば、ファイルの実体 を操作することができます ( 図 5 ) 。 1 NetBSD 2.99.10 のマニュアルを参照しています。 UN 工 X MAGAZINE 2004. 12 それでは、ファイルの実体を消すにはどうすればいいで しようか。ある実体を指しているハードリンクを 1 つ 1 つ 消していくと、どんどんリンクが少なくなり、ついには最 後の 1 つを消すときがやってきます。その最後の 1 つを消 した瞬間、ファイルの実体も消えるのです。すなわち、ハ ードリンクのないファイルの実体は存在できません 2 ファイルの名前の数 ファイルに付けられた名前の数は、 ls コマンドで確かめ ることができます。それには、さきほど紹介した一 1 オプシ ョンを付けて実行します。結果を図 6 に示します。左から 2 番目のカラムがハードリンクの数でしたね。図 5 で名前 が 2 つになりましたが、このカラムの値もたしかに 2 にな っています。 ファイルの別名 こまでみてきたファイル名は、ハードリンク、すなわ ちファイルの本名でした。 2 操作するときにはファイルの名前で指定しますから、名前のないファイルは存 在する意床がないわけです。 0 171
連載 / シェルのー 0 図 10 別のファイルの実体を指した 図 11 ティレクトリの親子関係 symlink-l . txt link-2. txt link-3. txt - シンポリック・リンク # # zshenv ZDOTD 旧ニ- global- glOba set-te 「 set-la directory-l set-la set-ter directo global- directory-l の実体 ティレクトリのファイル名が 登録されている global- di rectory-l set-ter set-la directory-2 directory-2 の実体 ハードリンクファイルの実体 ファイル名を指し示しているだけです。参照先のファイル 名か在すればそのファイルの実体を指定したことになる し、存在しなければ工ラーになる、というわけです。 ティレクトリ ファイルにはいくつかの種類があります。そのなかに 、、ディレクトリ " と呼ばれるものがあります。ディレクト リはファイル名を登録するための入れもののような役割を 担うファイルで、すべてのファイル名はかならずあるディ レクトリに登録されることになっています。つまり、さき ほどの directory entries は、登録されたファイル名だっ たのです。、、ファイル名を消す " とは、ディレクトリ・ファ イルに登録されたエントリを消すことを未するわけです。 親と子 上で述べたように、ディレクトリもファイルの種類の 1 つです。それを強調するために、ディレクトリのことを 、、ディレクトリ・ファイル " と呼ぶ場合もあります。すべて のファイルはすくなくとも 1 つのファイル名をもちますか ら、ディレクトリ・ファイルにもファイル名があります。し たがって、ディレクトリのファイル名もどこかのディレク トリに登録されています。 あるディレクトリ・ファイルにファイル名が登録されて いるディレクトリを、そのディレクトリの、、子ディレクト リ " または、、サプディレクトリ " と呼びます 4 。逆に、ある ディレクトリのファイル名が登録されているディレクトリ を、、、親ディレクトリ " と呼びます。図 11 は親ディレクト リとサプディレクトリの関係を示しています。 directory- 2 は directory-l に登録されていますから、 directory-2 は 4 あとで説明するこ " と、、 .. " は除きます。 UNIX MAGAZINE 2004. 12 directory-l のサプディレクトリですし、逆に directory-l は directory-2 の親ディレクトリです。 なお、図 11 のようにディレクトリ・ファイルのデータ 部分には、登録されているファイル名カ第己録されています。 本名と、、 ディレクトリもファイルですから、本名 ( ハードリンク ) をたくさん作ることができてもよさそうです。新しいハー Operation not permitted ←ディレクトリ・ファイル ドリンクを作るには、ⅲコマンドを使うのでした。 directory—2 $ ls ln: directory—3: $ ln directory—2 directory—3 directory—2 $ ls すべてのディレクトリはかならず自分に自分自身を登録 は各ディレクトリごとに 1 つです。 ことは禁止されています。したがって、このタイプの本名 場合に登録されますが、 ln コマンドで新しくリンクを作る クはディレクトリを作成したり、どこかから移動してきた で、親ディレクトリに登録されています。このハードリン 最初のものは、図 11 の directory-2 という名前のこと ・サプディレクトリに登録されている ・自分に登録されている自分自身を表す ・親ディレクトリに登録されているファイル名 います。 なく、自由に新しいハードリンクを作ることは禁止されて じつは、ディレクトリのハードリンクは以下の 3 種類しか おや、エラーが出てハードリンクを作れませんでした。 しています。 2 番目のリンクである、、 . " は、 この、、自分自 173
連載 / シェルの魔術ー① 図 12 ティレクトリの親子関係 親ティレクトリへ hom naoto mya mya bin tmp n aoto work . zshenv 身 " を表すものです。この種類のリンクも、ディレクトリ ごとに 1 つです。 また、すべてのディレクトリ・ファイルは、かならずどこ ました。自分の名前が親ディレクトリに登録されているこ 以上のディレクトリ・ファイル名の関係を図 12 にまとめ ります。 の種類のリンクはサプディレクトリの数だけあることにな 分自身が登録されていることになります。したがって、 という名前で自 自分のサプディレクトリのすべてに 表す名前です。逆にいえば、あるディレクトリからみると、 す。最後の、、 .. " は、自分を登録している親ディレクトリを す自分を登録している親ディレクトリがいるということで かのディレクトリに登録されています。すなわち、かなら と、親ディレクトリか、 . " として登録されていること、自 174 1. 親ディレクトリに登録されているものが 1 つ とめると、以下のようになります。 い。また、ディレクトリのハードリンクの個数についてま 分自身が、、 . " として登録されていることに注意してくださ set-la set-ter glOba globa ト setq setq ⅵ 普通のファイルの実体 2. 自分自身に登録されている、、 . " が 1 つ 3. サプディレクトリに登録されている、、 .. " が、サプディレ クトリの個数ぶん たとえば、サプディレクトリが 4 つあるディレクトリの 場合、本名の数は 1 十 1 十 4 = 6 個となります。図 13 を みると、 . のハードリンクの数がたしかに 6 個になって いること力分かります。それでは問題です。このディレク トリの親ディレクトリは、サプディレクトリを全部でいく つもっているでしようか ? 答は・・・・・・ 2 つですね。どうし てそうなるのカ考えてみてください。 木構造と根っこ さて、すこしばかり特別な、、 . " と、、 .. " を無視して考える と、ディレクトリ・ファイルの名前を登録するためには、 すでにあるディレクトリにサプディレクトリを作る必要が あります。ディレクトリのハードリンクを作ることは禁止 されていることも考慮すると、ファイルシステム内のファ イルは図 14 のような木構造になります。木構造では、あ UNIX MAGAZINE 2004. 12
連載 / シェルの魔術ー① ー 1 図 8 ls ー 1 のシンポリック・リンクの表示 $ ls lrwxr 2 naoto 2 naoto 1 naoto naoto 52 Oct naoto 52 Oct naoto 10 Oct 9 9 9 15 : 11 1ink—2. txt 15 : 11 1ink—3. txt 18 : 16 symlink—l . txt ー > 1ink—2. txt これに対して、ファイルには別名を付けることもできま す。ファイルの別名のことを、、シンボリック・リンク " と シンボリック・リンクを作るには、 ln コマンドに一 s オ れます。 ァイル名 " が指しているファイルの実体に対しておこなわ リンクへの操作は、、、シンポリック・リンクが指し示すフ のではなく、ファイル名をイ尉寺しています。シンポリック・ 呼びます。シンボリック・リンクはファイルの実体を指す $ ls $ 1 Ⅱ—s 1ink—2. txt symlink—l . txt プションを付けて実行します。 172 symlink—l . txt る場合も、このような作業を繰り返してファイルの実体ま ンボリック・リンクの参照先がシンボリック・リンクであ がみえますし、そのデータを変更することもできます。シ である 1ⅲkー2. txt ( が指し示すファイルの実体 ) のデータ ば、 symlink-l. txt のデータを取得しようとすると、参照先 に対する操作は参照先のファイルに適用されます。たとえ しようか。上でも説明したように、シンボリック・リンク では、 symlink-l. txt に対する操作はどのようになるで は、どのファイル名を指し示しているかが示されています。 ます。また、シンボリック・リンクのファイル名の部分に 1 は、ファイルがシンボリック・リンクであることを表し この部分はファイルの種類を表すようです。じつは、この 最初の文字が、、に ( 工ル ) になっています。図 2 によれば、 行結果の最後の行がシンポリック・リンクです。この行の ン付きの ls コマンドでみればすぐに分かります ( 図 8 ) 。実 クはファイルの名前を指しています。これは、一 1 オプショ の実体を直接指し示しているのに対し、シンポリック・リン になっていることが分かります。ハードリンクがファイル す。この図を見ると、ハードリンクとはまったく違う構造 リック・リンクがどのようになっているかを、図 7 に示しま じにみえますね。そこで、上記のコマンドでできたシンポ この実行結果を見るかぎり、ハードリンクとまったく同 1ink—3. txt 1ink—2. txt 図 9 迷子のシンポリック・リンク シンポリック・リンク先の ファイル名がない ! set-la set-ter glOba glOba ト ファイルの実体 link-2.txt link-3. txt ハードリンク でたどっていきます。 そうすると、ハードリンクとシンボリック・リンクの違 いはなんでしようか。図 7 のた態で、 link-2. txt というハ ードリンクを消してみましよう。 $ unlink 1ink-2. txt $ ls 1ink—3. txt symlink-l . txt このときの様子を図 9 に示します。図をみると・・・・・・お やおや、シンポリック・リンク symlink-l. txt の指し示 す先のファイル名がなくなってしまいました。この場合、 symlink-l. txt というファイル名では、 link-3. txt の実体 にアクセスすることはできません。 $ cat symlink-l . txt cat : symlink—l . txt : NO such file 0 て directory 「ファイルまたはディレクトリがありません」と言われて も 3 、ちゃんとこのファイルはあるのに ・・と思うかもし れませんが、このエラーは「シンボリック・リンクカ甘旨し 示すファイル名がありません」という意味なのです。 さらにここで別の実体のファイルを、 link-2. txt という ファイル名で作成してみると、図 10 のようになります。 のとき、 symlink-l. txt という名前でファイルを利用する と、図の上側にある実体を操作することになります。 こまでみてきたように、シンポリック・リンクは特定 のファイルの実体と結びついているわけではなく、たんに 3 「コマンドまたはファイル名カ随います」に似てますね・・ UNIX MAGAZINE 2004. 12
図 2 ls -l の実行結果における各カラムの意味 連載 / シェルのー 0 15 : 11 18 : 16 1ink—1. txt link—l . txt 1ink—1. txt 図 1 ls -l の実行列 $ ls total ー 1 4 3 naoto 3 naoto 3 naoto 1 naoto naoto naoto naot 0 naoto 52 Oct 52 Oct 52 Oct 6 Oct 9 9 9 9 13 : 11 link—l . txt 15 : 11 1ink—2. txt 1ink—3. txt symlink—l . txt ー > 1ink—2. txt 3 naoto ( 2 ) ( 3 ) 図 3 ファイル名とファイルの実体 ( 2 ) ハードリンクの数 ( 1 ) ファイルの種類とパーミッション naoto ( 4 ) ( 3 ) 所有者 ( 4 ) 所有グループ 52 Oct ( 5 ) 大きさ ( 5 ) 9 13 : 11 1 ink— 1 . t xt ( 6 ) ( 7 ) ファイル名 ( 6 ) 最終更新時刻 ファイル名 link-l . txt set-la set-ter glOba lOba ト ファイルの実体 かにデータ ( 中身 ) を入れていくというイメージです。あ ータが欲しいんだけど・・・・」とカーネルにお願いすると、 とでデータが必要になったときに、「あの箱に入っているデ 取り出してきてくれるわけです。 ファイルの名前 皆さんの家の押入れのなかには、たくさんの衣装ケー や土鍋を入れた箱 ( ? ) などが入っていると思います。 「あの土鍋どこにしまったつけな」 ス 味で、ファイル名のことを、、リンク " と呼びます。また、あ とで説明するファイルの別名 ( シンポリック・リンク ) と区 別するために、、、ファイルの本名 " と呼んだり、 、、ハードリ ンク " ということもあります。 ふだん、ファイルという言葉を明確に意識せずに使って いますが、実際にはこの言葉でファイルそのものを表した り、ファイル名を表したりしているわけです。この連載で は、ファイル名に対してファイルそのものを強調するとき には、、、ファイルの実体 " ということにします。 名前がたくさん ? 1 つのファイルには、複数の名前を関連づけることができ ます。土鍋の箱に名前を書いた紙をいくつも貼るのと同じ ( ? ) です。新しくファイル名を付けるには ln コマンドを使 います。名前 ( リンク ) を新しく作るという意味で、 LiNk の略になっています。 $ ls $ ln $ ls $ ls なんてときにはどうしますか ? すべての箱を開けて探す人 もいるかもしれませんが、箱に名前を書いた紙を貼り付け ておくと便利ですよね。 UNIX では注目しているファイルを分かりやすくするた めに、ファイルにはかならず名前が関連づけられています ( 図 3 ) 。この名前を、、ファイル名 " と呼びます。ファイル 名を使えば、「 XXXXX という名前のファイル ( のデータ ) が欲しいんだけど」というふうにファイルを指定すること ができます。 上で、「ファイルにはファイル名が関連づけられている」 と書きました。この説明からも分かるように、ファイルと ファイル名は別のもので、あるファイル名はかならずある ファイルに対応しています。関連づけられているという意 170 $ 1 Ⅱ link-l . txt 1ink—2. txt 1ink-2. txt link—l . txt 1i k ー 3 . txt 1ink—2 . txt 1ink—3. txt この結果、図 4 のようになります。いったん作られたハ ードリンクはすべて同等で、どのファイル名が最初に付け られたものかは区別できません。すなわち、このファイル の実体に対しては、 3 つの名前のいずれを利用しても同じ 操作をおこなうことができます。たとえば、ファイル内の UN 工 X MAGAZINE 2004. 12
国立天文台のネットワーク 6 図 7 静止画・乍系と動画系の構成 NAOJ ( 三鷹 ) SINET 画像処理 / 制御用 Web サーバー 図 5 従来方式 : すべて窈はカメラ本体へ NAOJ ( 三鷹 ) SINET NAOJ ( 乗鞍 ) NAOJ ( 乗鞍 ) インターネットから接続 ( 制御および画像転送 ) ビデオ : 出力 : カメラ (KX-HCM180) インターネットから接続 図 6 提案方式 : すべて窈は中間システムで終端 NAOJ ( 三鷹 ) SINET ミドル ポックス Windows Media 工ンコーダ Wi ndows Media NAOJ ( 乗鞍 ) インターネットから接続 ( ストリーミング ) 図 8 カメラキ乍用のコントロール・パネル カメラ 方イルの表示お和こ入りツールヘルアゆ インターネットから接続 (KX-HCM180) パン / チルト 0 従来の構成は、インターネットとカメラ本体という構成 0 です ( 図 5 ) 。これに対し、今回、考えたシステムでは、イ 0000 ンターネットとカメラ本体のあいだにカメラ操作 / 静止画 0000 - ーを静止画をは一分野第でを新されます . 用システム、動画用システムで構成される中間システムを 解懽度 挟んだ構成になります ( 図 6 ) 。 イ旨令を中間システム上で受け付け、このシステムがカメ ラへ操イ信旨令を送信します。カメラからの画像は、中間シ ステムにダウンロードします。 一方、動画を中間システムを介して表示できるようにす るには、 ActiveX の解析などが必要で手間がかかります。 メラが操作できるようになっています。したがって、各ボ そこで、カメラからのビデオ出力信号をビデオキャプチャ・ タンのリンク先を調べ、同じリンクを中間システムから開 カード付きの Windows PC に入力し、 Windows Media けばカメラが制御できます。 工ンコーダ 14 を使ってリアルタイムにエンコードして動画 各ボタンのリンク先をみると、次のようになっていまし を生成しました。この動画を三鷹の動画用システム ( 今回 た ( ん os ame の部分には、カメラのホスト名や IP アド は、 Windows Media サーバーを使用 ) へ送り、三鷹でイ レスが入ります ) 。 ンターネットに公開することにしました ( 図 7 ) 。 ・カメラの上方向への移動 ( チルトアップ ) このような構成にすれば、カメラの設置場所と中間シス http : //hostname/ViewerFrame?Direction=Ti1tUp テムのトラフィックは、インターネットから中間システム 1875&Mode=Refresh&Res01ution=320x240&Qua1ity へのアクセス数に関係なく一定となるので、さきほど挙げ =C1arity&Interva1=60&Size=STD&PresetOperation =Move&Language=1 た帯域の逼迫という問題は解消されます。 ・カメラの下方向への移動 ( チルトダウン ) カメラ操作システムの作成 http : //hostname/ViewerFrame?Direction=Ti1tDown 1875&Mode=Refresh&Res01ution=320x240&Qua1ity= 今回のカメラ操作システムは、 PerI で作成した簡単なも C1arity&Interva1=60&Size=STD&PresetOperation= Move&Language=1 のです。 図 8 は、 KX ー HCM180 のコントロール・パネル ( 左側フ これらと同じ HTTP リクエストを送信すれば、カメラ レーム内 ) です。各ボタンをクリックすることにより、カ の操作カ河能になるはすです。上記の URL を HTTP リ クエストとして ftp コマンド (NetBSD/FreeBSD の場 14 http://windowsmedia.microsoft.com/から入手できます。 な 4 工 第画新優を 表〒サイズ 一時保存画懽 一時保 マル新 インターネット 59 UNIX MAGAZINE 2004. 12
連載 / シェルの魔術ー① 図 13 ティレクトリのハードリンクの数を表示してみる $ ls —la total 12 drwxr— 6 512 Oct 9 18 : 50 naoto naoto x 4 512 Oct 9 18 : 49 naoto 取 aoto x 2 512 Oct 9 18 . ・ 50 subdirectory— 1 naoto naoto drwxr 9 18 . ・ 50 subdirectory— 2 512 Oct 2 naoto naoto drwxr 9 18 : 50 x 2 512 Oct subdirectory—3 naoto naoto x 2 512 Oct 9 18 . ・ 50 subdirectory— 4 naoto naoto 図 14 ディレクトリの木構造 ードリンクの数が 6 個になっている ( ルート ) home pkg bin etc naoto rm bin na010 mya work : 親ディレクトリ サブディレクトリ 0 ロ一 ティレクトリ・ファイル 普通のファイル 登録ファイル 図 15 ルート・ティレクトリ るファイルからほかのファイル名をたどる道筋が 1 つしか ないことか特徴です。 ところで、この図の一番上のディレクトリ・ファイルに は親ディレクトリがありません。これは、、ルート・ディレ クトリ " という特別なディレクトリで、ファイルシステムの 木構造の根っこにあたります。また、親ディレクトリは自 分自身になっています ( 図 15 ) 。自分自身の名前を登録し てくれる親ディレクトリがないので、ルート・ディレクト リに対応するファイル名もありません。 ls コマンドの仕事 勘のいい皆さんなら、そろそろ ls コマンドの本当の仕事 に気づいたのではないでしようか。 示するコマンドだったのです 5 。冒頭でも説明したように ファイル名がディレクトリ・ファイルに登録されている . " から始まるファイル名は表示されませんが、 -a を付け ことを説明してきましたが、 ()l なしの ) ls コマンドの出 カ結果は、登録されているファイル名と一致しています。 5 ディレクトリ・ファイルの中身を一覧で表示する、という末で、 LiSt の じつは、 ls コマンドはディレクトリ・ファイルの中身を表 略です。 ( ルート ) bin usr 175 UNIX MAGAZINE 2004. 12
連載 / ネットワークとセキュリティ 丿レー丿レオプション UN 工 X MAGAZINE 2004. 12 [Xref = > url help. undernet .org/proxyscan/] CPriority: 2 ] [C1assification: Attempted lnformation Leak] [ * * ] [ 1 : 615 : 5 ] SCAN SOCKS Proxy attempt [ * * ] ています。以下同様 ) 。 log 出力の一部を示します ( 誌面の都合上、で折り返し ーワードカ又疋されているシグネチャを用いた場合の sys- 以下に、 Snort に classtype キーワードや reference キ reference: cve, 1999 ー 0532 ; reference :nessus , 10595 ; グネチャ情報データベースもあります ( 丕 ) 。 お、 Snort 標準のルールに関しては Snort-DB というシ る際に、参考・情報のリンクを作成するのに役立ちます。な ィ・イベント分析ツールがイベントに関する情報を表示す ードは Snort の動作には直接景彡響しませんが、セキュリテ 情報へのポインタを示すために利用されます。このキーワ reference キーワードは、シグネチャに関連した外部の reference キーワード classtype : attempted—recon; 洩への言鵡于行為を示しています。 config ファイルで定義されています。以下の例は、情幸届 す。 Snort 標準の classtype の一覧は、 classification. べントがどの程度の脅威であるかを示すために利用されま classtype キーワードは、そのシグネチャが検知するイ classtype キーワード msg: "DNS zone transfer TCP" ・ TCP " というメッセージを出力します。 は、当該バケットが発見されると、、 DNS zone transfer Snort が出力するメッセージを指定します。以下の例で msg キーワードには、シグネチャにマッチしたときに msg キーワード メタテータ・ルールオプション は、、 ; " ( セミコロン ) で区切られます。 ( コロン ) で区切って並べます。また、各オプションの内容 、、 ( " と ) のあいだに、オプション・キーワードと値を ( キーワード 1 : 値 ; キーワード 2 : 値 ; キーワード 3 : 値 ; ) ルールオプションの書式は以下のとおりです。 Classification に classtype で指定した内容が、 Xref に reference で指定した内容が反映されています。 また、先月紹介した BASE などのセキュリティ・イベ ント分析ツールでは、 classtype や reference をもとに セキュリティ・イベントに関するリンクを作成しています。 sid キーワード sid (Snort rules (D) キーワードは、 Snort のなかで ルールを一意に識別するために利用されます。 sid の割当 ては次のとおりです。 ・ 100 未満 : 将来のために予約 ・ 100 ~ 1 , 000 , 000 : Snort に同梱されるルールに利用 ・ 1 , 000 000 以上 : ローカルルールに利用 ユーザーが独自にルールを作成する際には、 1 , 000 , 000 以上の値を sid に指定しましよう。 また、 sid-msg. map ファイルには、 sid の値とメッセー ジの対応表カ己載されています。このキーワードは rev キ ーワードと同時に利用します。 sid:255; rev キーワード rev キーワードは、 Snort のルールのリビジョンを一意 に識別するために利用されます。ある sid をもつシグネチ ャの内容力畯更された場合、 rev キーワードの値を更新し てシグネチャの変更を示します。 rev: 12 ; ペイロード検知ルールオプション content キーワード content キーワードは、 Snort が侵入検知をおこなうう えでもっとも重要なキーワードです。 Snort は、監視対象 のバケットにおいて content キーワードで指定された内容 を検索し、マッチしたものに対して出力をおこないます。 もっとも基本的な content キーワードの指定方法は、 ASCII 文字列をそのまま記述するものです。以下に、ペ イロード中に、、 .. /.. /.. / " が含まれるバケットを検知対象と するキーワードの例を示します。 content : もう 1 つは、 content キーワードをバイトコードで指 定する方法です。こちらは、 ( パイプ ) と、、「のあい 67
NEWS •Seagate 1 OOGB5,400rpm の 2.5inch HD 米 Seagate Technology は、ノート は 8MB 、 I/F は UltraATA/100 、アク PC 用の 2.5inch HD 「 Momentus 5400.2 セス時間信翹 ( り / 書込み ) は 12.5ms / 14.5 ( ST9100823A ) 」の販売を開始した。 ms 、消費電力 ( 読取り / 書込み / アクティ 容量は 100GB ( 1 プラッタあたり 50 プ・アイドル ) は 2 / 2.1 / 0.92W 。独自の G 衝撃性能は 900G 。 5 年間の保証付き。 (B) 、回転速度は 5 , 400rpm 、キャッシュ フォースイ描矍技術を使用し、非動 ( 御の耐 •WACOM スプレイの背後にセンサー本体を組み込 むことで表示品質を低下させすにペンセ べンセンサー・コントローラ ンサーを実装できる。動作電圧は 2.3 ~ ワコム (Tel 03 ー 5309 ー 1508 ) は、携帯電 開始した。 3.6V 。サンフ。ルレートは最大 100 ポイン 話、 PDA 、デジタルカメラなどの小型情 電池不要の筆王対応コードレスペン、フ ト / 秒。パッケージは 64 / 84 ピン BGA ( 6 報機器向けのワンチップ・ペンセンサーコ ライトボイント ( ペンを浮かせた状態でカ X6mm)0 ントローラ「 W8002 」のサンプル出荷を ーソルを移動できる機能 ) に対応し、ディ •Sun 次キャッシュ ( 外部 ) は 32MB0 既存の UItraSPARC とバイナリ互換。 おもな強イヒ点は、キャッシュ / バッファ 米 Sun Microsystems は、プロセッサ 複数のスレッドの同時実行が可能。プロ の増強、支予測の改良、プリフェッチ機 「 UltraSPARC IV 十」を発表した。 セスは 90nm 、動作周波数は 1.8GHz 、 2 能の改良など。 CMT 技術を使用し、 1 プロセッサで 次キャッシュ ( オンチップ ) は 2MB 、 3 Linux カーネルのクラッシュダンプ機能 UltraSPARC IV 十 •NTT DATA 、 VA Linux 開。対応システムは IA—32 で、 IA 一 64 、 x 86 ー 64 にも対応の予定。 ニカーネルダンプ・プロジェクト NTT データと VA Linux Systems ム情報を外部記録装置に保存する。障害 の Web ページ http://sourceforge.net/ Japan は、 Linux カーネルのクラッシュ が発生している Linux カーネルとは別の projects/mkdump/ からソースコードが ダンプ機能をもつソフトウェア「ミニカー ダンプ専用ミニカーネルを起動すること 取得できる。 ネルダンプ」を公開した。 でクラッシュダンプの一貫性を保ち、取得 Linux システムの障害発生時にシステ 確度を高めた。ソースコードは GPL で公 •NSM 非接触型℃カードを使用した科学博物館 国立科学賻物館は、 11 月 2 日から公開 も記録可能。見学状況は館内の情報端 された新館での常設展示に IC カードなど 末で参照できるはか、 IC カードに付属 を利用した展乃雨早説システムを導入した。 する ID カードの ID/ パスワードにより 展示場の各所に非接触型 IC カードリー 国立科学博物館の Web サイト (http:// ダー付きの解説端末を配置し、希望者 www.kahaku.go.jp/) でも石忍できる。 者の現在位置に応して適切な展示解説を に無料配布される IC カードを近づける 展示解説用の PDA も有料 ( 500 円 ) で 表示する。 PDA で、国立科学賻物館の研 ことで、見学した展示物の情報が記録で 貸し出される。展示場の各所に設置され 究者による音声解説を聴くこともできる。 きる。 IC カードには解説端末の表示言語 た赤外線装置から位置情報を取得し、入館 UN 工 X MAGAZINE 2004. 12 25