e $ & 第 0 ce 0 0 ・ 、ための記述 ( 以下、静的情報と呼びます ) 、アクセス・コ ントロールの記述、そしてトラップ・メッセージ送信先 を記述する部分に分けられます。 静的情報の記述 静的情報は、次のようなキーワードで始まる行で記し ます。 sysdescr mpd の働き 図 2 ファイルシステム ス ス ス 動的資源 gated snmpd MIB の sysDescr で返される文字 列 tcprtO algorithm MIB の tcpRtoAIgorithm で返さ ネットワーク れる値 トするためのデーモンプロセスで、従来の /etc/routed MIB の ifSpeed で返される値 interface speed に似た働きをしますが、機能ははるかに強力です。 MIB の ifType で返される値 interface type snmpd は必要に応して gated のもつ情報をアクセスし、 MIB 変数の値として返します。また、 snmpd は gated 以上の情報のうち、 sysdescr の行は各サイトで書き 換えます ( デフォルトは Sony-NEWS-Workstation)0 を走らせなくても動きますが、その場合はルーティン それ以外は、書換えの必要はありません グ・メトリックおよび EGP に関するいくつかの変数値 は得られません。 アクセス権の設定 SNMP 工ージェントのコンフィギュレーション SNMP は、コミュニティ名という一種のパスワード を介してアクセス権を設定します。つまり、このコミュ ニティ名がストリングべースでマッチした場合、アクセ こでは、 snmpd のコンフィギュレーション・ファイ ル /etc/snmpd. conf の記述について述べます。 ス権が与えられるのです。 snmpd. conf では、以下のよ snmpd. conf は、カーネルから得られない MIB 変数の うな行を書き並べることでアクセス権を設定できます。 community く comm 社〃 - れ ame > <ip-address> く access-right> 以外であれば却下されます。 例を挙げます。 最後のコミュニティ名 public は、 SNMP のデフォル community sm—test トのコミュニティ名です。 SNMP のアプリケーション community sm—admin community public は、とくに指定しないかぎりこの名前でアクセスするこ この記述は、次のように解釈されます。 とが多いので、セキュリティ面から public コミュニテ ィは使わないほうがよいでしよう。 コミュニティ名 sm-test のリクエストは、どこからき また、 read-only というのは MIB 変数の読出しのみ たものであっても read ー only でアクセス権が設定され 許し、 read-write は読出しだけでなく書込み (set oper- ます。アドレス 0.0.0.0 は、すべての IP アドレス〃と ation ) も許すことになります % 解釈されます。 また、コミュニティ名 sm ー admin でホストアドレス 143.149.2.1 からきたリクエストに対してのみ、 read- 2 実際には MIB 変数ひとつひとつにもアクセス権が設定されており、すべて に write できるわけではありません。詳しいことは RFCI 156 あるいは参考 write でアクセス権が設定されます。たとえコミュニテ 文献 [ 1 ] をご覧ください。また、ⅵ operation が書込み可能な MIB 変数の すべてをサポートしているわけではありません。インプリメントによって異 イ名 sm ー admin であっても、アドレスが 143.149.2.1 なります。 /dev/kmem read—only read—vrite read—only っ ~ 0 9 0 ・ 4 0 1 0 0 3 0 ・ 4 0 1 宀 0 19 UNIX MAGAZINE 1991.6
の簡単なエチケットを守るだけで、社内のコンピュータ・ ューザーだけでなく、ネットワーク上のほかの人びとにも 迷惑をかけることがなくなるはすである。 1 ) ューザー全員にパスワードを設定するように求め、それ も類推しにくいものにしてもらう ( 妻の名前や自分の名 前のイニシャルなどはよいパスワードとはいえない ) 。 2 ) 自社ネットワークがモデムを介して直接電話回線とつな がっているときには、かならすアクセスの記録をとるよ うにし、通常とは異なるアクセスがないかどうかをチェ ックする。電話回線は、ネットワークへのもっとも一般 的な侵入路である。できればモデムにコールバック・シ ステムをつけるようにしよう。 3 ) ルートのパスワードはたびたび変更し、類推しにくく、 かっ他人に知られないようにする。 4 ) 発送するすべてのメールに、メールヘッダの規格に従っ た完全に認識できるアドレスをつける。 5 ) 自社のユーサーに対して、 lnternet は貴重な資源で、多 数のユーサーによって共有され、そこへのアクセスは慎 重におこなわれるべきであることを説明する。 TI 回線 ですら Ethernet より 10 倍も遅い。多くの WAN リン クは、それよりもさらに遅い。 lnternet 上で X ウインド ウなどの広いバンド幅を占有するパッケージを稼動す るのは、ネットワークの習慣上はめられたものとはいえ 6)Internet から自社のローカル・マシンへの無差別なアク セスを認めない。大半のルータでは、ログインやリモー ト FTP アクセスを受け付けないようにバケットをフィ ルタ化できる。メールのアクセスや anonymous FTP 用に 1 台のマシンをあて、そこですべての lnternet の メールや anonymous FTP アクセスを受け付けるよう にする。そしてそのマシンから、自社ネットワークのほ かのユーサーにメールを転送するようにする。 7 ) メール・ゲートウェイからのパスワードなしのリモート ログインを認めない。できれは・、ユーザー・アカウント をゲートウェイ・マシンから切り離しておく。 8 ) 、、火星人〃バケットを lnternet に流してはならない。こ れは、未登録のネットワークからくるバケットである。 lnternet 上のネットワークからくるはすのないもので あれば、まさに火星からのものかもしれない。原因は、 78 未登録のネットワーク番号を使ってしまうからであり、 自社のすべてのホストが登録されたネットワーク番号を 確実に使用するよう注意が必要である。未登録のネット ワーク番号をもつホストがあった場合、或ネットワー クの管理者から電話やメールで苦情が寄せられると思っ てまちがいない。 9 ) 不法なエントリに対する防御策をルータに施しておく。 ほとんどのルータはパスワードによるアクセス制御をお こなっているので、パスワードは安全に管理するととも にたびたび変更する必要がある。 10 ) みだりに変更されては困るようなデータは、 lnternet にアクセスするマシン上に置いてはならない。同様に 電話回線経由で直接アクセスできるマシンに置いては ならない。 lnternet へのアクセスは、電話を通したアク セスによるシステムと同程度に安全にすることはできる が、それ以上のことは不可能である。 おわりに■ lnternet へのアクセスにより、ユーサーは資源の世界へ と誘われる。おそらく、もっとも活用される資源は電子メ ールだろう。ビジネス上の顧客や専門分野の仲間とのコミ ュニケーションという点で、あなたはこのツールがきわめ て貴重なものだと納得するにちがいない。数々のテーマを めぐる豊富な情報を提供する、関心領域別のメーリング・ リストも多数存在する。この広大で急速に拡大している資 源を活用するための新しいアプリケーションも続々登場し ている。 lnternet は、単なるハードウェアやソフトウェアではな い。それは電子的なコミュニティである。どのようなコミ ュニティにも共通することだが、その社会のメンバーとな るには一定のルールに従わねばならない。だが、その社会 の一員となることで、果たさなければならない義務よりも はるかに多くの利益が得られるはすである。 ・ Smoot Car ト Mitchell Texas lnternet Consulting の共同経営者。ネットワーク管理の相談 に応しると同時に、メールシステムの入門書を著している。 (E-mail: tic@tic .com/ 「 lnternetting a Sun 」 SunExpert Magazine 1990 年 8 月号より UNIX MAGAZINE 1991.6
連載 /UNIX Communication Notes リスト 6 /etc/exports の例 saturn に対して、ファイルシステム / home へのアクセス ループ grouplmachines に含まれる計算機と計算機 リスト 6 に実際の例を示します。この例では、ネットグ ます。 算機に対してファイルシステムへのアクセスが許可でき グループ名を書いておけば、そのネットグループに属す計 ようになっています。そこで、ホスト名のところにネット ストを列挙してファイルシステムへのアクセスを許可する にも使うことができます。 NFS では、 /etc/exports にホ ネットグループ名などの NIS の記述は、 /etc/exports /etc/exports る行が有効になるので、記述の順番に留意してください。 /etc/group でも /etc/passwd と同様、さきに書かれてい し、最後の行でそれ以外のグループを有効にしています。 /home —access=grouplmachines : saturn この例の場合だと、 リスト 7 を見てください。 同様のことが、 /etc/hosts. equiv にもあてはまります。 /etc/hosts. equiv を許すようになっています。 UNIX MAGAZINE 1991.6 アカウントを制限したい場合は、ネットグループをうま ヒント というように、ネットグループなどを使って記述できます。 ・それ以外の計算機からのアクセスには許可を与える 場合は許可しない ・計算機 creamy から、ユーサー saitoh がアクセスした れるユーサーがアクセスした場合は許可しない 計算機 pluto からネットグループ risky-users に含ま ードをチェックする ) のアクセスに対しては、許可をえない ( すなわちパスワ ・ネットグループ risky-machines に属する計算機から なわちパスワードをチェックしない ) ・計算機 mars からのアクセスに対して許可を与・える ( す リスト 7 /etc/hosts. equiv の例 mars —@risky—machines pluto —@risky—users creamy —saitoh 十 く利用すれは簡単に設定できます。したがって、事前にさ まざまなネットグループを用意しておくといいでしよう。 次のようなネットグループを用意しておくと便利です。 ・研究室、作業グループなどのユーサーを表すネットグル ープ : これは、はかの研究室のユーサーを締め出すとき に有効です。 ・研究室、作業グループで使われている計算機群を表すネ ットグループ : これは、 /etc/exports や /etc/hosts. equiv などでの設定で使えます。 ・計算機を管理しているユーザーを表すネットグループ ・アーキテクチャごとの計算機を表すネットグループ : /etc/exports で利用できます。 その他の便利な機能 そのほかの便利な機能として、 NIS を用いたメールの工 イリアス ( a ⅱ as ) の管理が挙げられます。 NIS 対応の send- mail では、ローカルの工イリアスにマッチするものがない かを捜し、マッチしなかった場合には NIS の /etc/aliases のマップを検索します。この機能をうまく使えはメールの ェイリアスが集中管理できます。 しかし、 UCB から直接入手したソースから sendmail を生成して利用しているところでは、 NIS の検索を利用す るようにはなっていません。この機能を使うためには、 OS に付属している sendmail を使う必要があります。 ☆☆ 今回は、 NIS の導入方法と、ネットグループの利用方法 について説明しました。次号では、 NIS の運用管理、マッ プの自動更新、 NIS から BIND を利用する方法、 SunOS 4.1.1 での NIS などについて説明します。 ( さいとう・あきのり、やまぐち・すぐる大阪大学 ) 71
インターネットへの接続 by Smoot Carl-Mitchell るために多数の地点にルータを配置しつつある。ヨーロッ パや極東にも、完全な lnternet アクセスが可能な地域ネ ットワークがある。 アクセスへの第 1 歩は、 lnternet にアクセスできる近隣 の地域ネットワークを見つけることである。 lnternet の一 部を構成するこの種のネットワークは多数存在する。そし て、それらのすべてが lnternet へのアクセスには別立て の課金制度を設けている。その料金は通常、月額数百ドル から、接続速度によっては数千ドルになることもある。料 金にはハードウェアやソフトウェアの費用のほか、ネット ワークの運営に要する管理費用がプラスされる。或ネッ トワークへのアクセスに必要な専用回線の費用はこの料 金には含まれない。 地域ネットワークに接続するには、かならすルータを購 入しなければならない。これはバケットの経路指定などを おこなう特別なコンピュータであり、典型的な構成は次ペ ージの図 1 のようになる。 この単純な構成は、 2 つのインターフェイスから成り立 っている。 1 つは地域の広域ネットワークの 1 つに接続す るシリアル回線へのインターフェイスである。通常、シリ アル・インターフェイスは 9 , 600bps から TI までさまざ まな速度での通信が可能である。事実、このインターフェ イスとシリアル回線は地域ネットワークの一部を構成す る。もう一方の側は、 LAN への Ethernet インターフェイ スである。 TokenRing など、ほかの LAN ハードウェア を使うこともできる。 1 つ以上の物理的ネットワークをも っていれは、複数の Ethernet インターフェイスでルータ を構成することも可能である。 いくつかの地域ネットワークでは、 SLIP (Serial Line (P) リンクをサポートしている。一般に SLIP によるアク UNIX MAGAZINE 1991.6 散型の管理がおこなわれており、共存のためのルールは厳 net 社会と共存させることが可能になる。 lnternet では分 る。それによって、現在のネットワークを障害なく lnter- くっかのキーポイントとなる方法による調整が必要であ うものではない。 lnternet コミュニティに加わるには、い だが、 Sun のネットワークをそのままつなげはよいとい 数の資源が共有できる。 用中の LAN を lnternet に接続するのは簡単で、その多 である 0Sun は TCP/IP をサポートしているため、現在運 スによる利点を活かそうとする団体や企業は増加する一方 数多くの資源にアクセスできるので、 lnternet へのアクセ 用している。 Sun をこの強力なネットワークに接続すれば 回線から高速 FDDI にいたる多種多様な物理リンクを採 クである。これらのネットワークは、低速の 1 , 200bps 電話 のネットワークをつなぐ世界規模のインターネットワー lnternet は、 TCP/IP プロトコルをベースとする多数 密に守らなけれはならない。 アクセスの準備 スを提供しており、商用べースでの顧客サービスを実施す lnternet との完全な相互接続性を備えた TCP/IP サーピ Communications Services (info@uunet.uu.net) でも バージニア州フォールズチャーチにある UUNET 域をカバーするシリアル回線を介して接続されている。 れらのネットワークは IP ルータから構成され、特定の地 するためのバックポーンの役割を果たしている。一般に ローカルもしくは企業ネットワークから lnternet に接続 から構成されている。そしてこれらの地域ネットワークが、 国の lnternet は、多数の地域的な広域ネットワーク 72
・あのお、もしかして・・・ ・もしかして、停電でエレベータに閉じ込めら 2X4 = 1 : ほんまか。それやったら、いつでもわしと一 yamato: やつばり ! もう日本全国、有名てすよー ! 1 2X4 = 1 : なんてわかるんや。 れた 2X4 = 1 さんですか ? アクセスの床を開けることになりました。 トランシー - ノ、・ ケープルを、入れ換えるために、フリー 帰ってええ ! ! べータで乗り合わぜたときは声をカけてください牙 すっかり有名人になった 2X4 = 1 さんでした。 緒にエレベータに乗ってもらおか。 : はじめまして、 よろしく。 yamato. yamato. みんな : です。 yamato 連載 31 新人社員 2 題 2X4 = 1 : なんや。 ワークステーションのおと 坂下 私の勤める ASTEC にも新入社員が入ってきました。 もしかして・・・ こんど新しく入った yamato 秀 kawana 君がパネルを持った瞬間 ! ss&2x4=I: 帰ってええ ! ! kawana 君、何がいけなかったのでしようか。フリー アクセスのパネルは次のような形をしています。 れだとはめられませんよね ? 正しくは C と D を持っ kawana 君は、 A と B の部分を持ったのでした。 のてす 2 。 続 bash 今月も bash のお話です。 前回、間違いを書いてしまいました。 のところで、 bash では C シェルと同じ記法、 リダイレクト SS: こからやろか。 2X4 = 1 : せつかくやから、新しく入った kawana 君に も見せたろか。 ss: せやな。 作業後・・・・ ss: せつかくやしフリーアクセス、はめてもらおうや。 2X4 = 1 : そや才 ss: そしたら、その 1 枚残ったフリーアクセスのパネ ル、はめてみ。 kawana: はい 1 1991 年 2 月号参照。 100 command & > file が使えます。 と書きました。これは間違し、で、正しくは、 command > & file としなければいけません。 UNIX MAGAZINE 1991.6 くたさい。 2 ろ切、らない人は、このパネルカ皦き詰められているところを想像して へ移行するときの注意です。 さて、今月は C シェルや NEWC シェルから b h
UN Ⅸへの招待 # cd /usr/sys/conf # cp GENERIC SNOOPY # vi SNOOPY ←コンフィキュレーション・ファイルの編集 # mkdir /usr/sys/SNOOPY # /etc/config SNOOPY # cd /usr/sys/SNOOPY # make depend # make # mv /vmunix /vmunix. 01d cp vmunix /vmunix このあと、新たに作成したカーネルを立ち上げるため、 りますにれがシンポリックリンクが提供されるにいたっ ドがそれぞれのファイルシステムに存在していることにな ステム内で一意ですから、同し i ノード番号をもつ i ノー i ノード番号と呼びます。 i ノード番号は 1 つのファイルシ システム内で一意な番号がふられています。この番号を、 システムを作ったときにたくさん用意され、そのファイル 割り当てられることになっています。 i ノードは、ファイル よう。 UNIX では、 1 つのファイルには 1 つの i ノードが めの機能です。ここでは、その仕組みを簡単に説明しまし ル名を使って同しファイルにアクセスできるようにするた 前号でもすこし触れましたが、リンクとは異なるファイ クも可能です。 リのリンクも、異なるファイルシステムのファイルのリン もできません。一方シンポリックリンクでは、ディレクト 中のファイルをほかのファイルシステムにリンクすること トリのリンクはおこなえませんし、あるファイルシステム ァイルしかリンクできません。ハードリンクではディレク ードリンクでは、同しファイルシステム内の通常のフ 呼ぶ ) の 2 種類があります。 ードリンクとシンポリックリンク ( 、、ソフトリンク〃とも リンクについて説明します。リンクには、前号で紹介した リックリンクされています。ここでは、そのシンポリック さて、さきほど述べたように /sys は /usr/sys にシンポ シンポリックリンク ちんと読み、その記述にしたがって操作をおこなってくだ ネルを構築する場合には、提供されているマニュアルをき 個々にさまざまな改良を施しているようです。実際にカー 以上の操作については、 UNIX マシンの各メーカーが システムをリプートします。 158 た重要なポイントです ) 。 さて、ファイルを作ったディレクトリには、ファイル名 とそのファイルに割り当てられた i ノード番号のペアが登 録されています。 i ノードには、ファイルの種類、ファイル の保護モード、ファイルの所有者 / グルーフ。所有者、ファイ ルの時刻情報、ファイルの実体が格納されているディスク 上のプロックのアドレスなどの情報が収められています。 ューサーがあるファイル名を指定すると、カーネルはディ レクトリのなかからそのファイル名を検出し、ファイル名 とべアになっている i ノード番号をもとに、そのファイル に割り当てられた i ノードをアクセスします。 i ノードには ディスク上のプロックアドレスが入っていますから、その 情報をもとに実際のファイルの内容がアクセスされるわけ さて、 A というファイルを B というファイルにハー ンクしたとしましよう。 A には、 i ノード番号 10 の i ノー ドが割り当てられているとします。すると以下に示すよう に、 B が登録されたディレクトリには、 B という名前と A と同し i ノード番号の 10 番のペアが登録されます。 この結果、 A という名前でアクセスしても B という名前 でアクセスしても、いすれも i ノード番号 10 番の i ノード がアクセスされることになり、同しファイルの実体にいき つくことになるわけです。これが、ハードリンクです。ハ ードリンクで異なったファイルシステムのファイルをリン クできない理由は、こにあるのです。ファイルシステム には、それぞれ一意な i ノード番号をもつ i ノードが存在 していますが、ファイルシステムが異なれば、それは一意 なものとはいえなくなってしまいます。というのは、ファ イルシステム / usr にもファイルシステム / tmp にも 10 と いう番号の i ノードが存在しているからです。 10 B UNIX MAGAZINE 1991.6
UN Ⅸのもっとも特徴的な機能の 1 つは、標準で装備さ れている一群のユーティリティである。しかしこれらのな かには、削除されたファイルを復元させるツールはない。 この手抜かりによって、長年にわたり多くの悲喜劇が生ま れた。この間題の解決に大きな障害があるのは事実だが、 それでも UNIX のファイルを復元するユーティリティが 作成できないわけではない。 ロ UNIX ファイルの颱 UNIX のファイルシステムは、インデックス・ノード ( 通 常は i ノードと略される ) と呼はれる構造に集約される。 i ノードは、ファイルとデータブロックへのホインタに関す S_ISUID / * 実行時のユーザー id を設定 * / S_IGUID / * 実行時のグループ id を設定 * / UNIX フⅵルの復元 by Lyle Frost •from 凵 NIX REVIEW に分類される。また、このはかにもいくつかのモードフラ 3 っすつの 3 グループ ( 所有者、グループ、その他の権限 ) ファイルモードは 9 つのアクセス権限を含み、それぞれ よって作成される。 mknod ( 名前付きパイプ ) または pipe( 名前なしパイプ ) に プには固定数のデータブロック ( 通常は 10 ) がある。これは を換えれば、 fifo とは要するにパイプである。現在、パイ mknod システムコールによってのみおこなわれる。言葉 い。これらの作成は、 creat や叩 en によってではなく スポイントであり、それに関するデータは保持していな ック・スペシャルファイルはデバイスドライバへのアクセ 、ゝるすべての管理情報を含んでいる。キャラクタおよびプロ グがある。 s_lsvrx / * 実行後にスワップされたテキストを保存 (sticky ビット ) * / S / * レコード・ロッキングを強制 * / uid フィールドと gid フィールドは、ファイル所有者の ューサー id とグループ id の数値を含んでいる。これらの 値は、そのファイルにアクセスしようとするプロセスに対 して、 3 種類の権限のうちのどれを適用するか決めるため に使用される。プロセスのユーサ、一 id が uid フィールド と一致した場合には、所有者の権限が適用される。これが 一致せす現在のグループ id が gid フィールドと一致した 場合には、グループ権限が適用される。どちらも一致しな い場合には、その他の権限が適用される。 実際のプロセスには 2 セットの id がある。実 id と実効 id である。ファイルアクセス権限を決定するために使用さ れるのは実効 id である。実効 id と実 id は通常は同しにな っている。しかし、 set-user-id ビット (S-ISUID) がセッ 108 トされているプログラム・ファイルが実行された場合、プ ロセスの実効ューサー id としてそのファイルの所有者の ューザー id がセットされる。 set-group-id ピットがセッ トされている場合には、実効グループ id に同様のことが起 こる。このように設計されているのは、ファイルに直接ア クセスできないユーサーが、実行可能なプログラムからそ れらのファイルにアクセスできるようにするためである。 たとえばこれを使用して、データベース・ファイルに対す る不正な操作を防ぐことができる。 ⅲ ink フィールドのなかには、ファイルに対するリンクの 数が格納されている。すなわち、ディレクトリ階層内でそのフ ァイルを参照する名前の数である。 UNIX のディレクトリは、 基本的にはファイル名を i ノード番号に変換するために使用 UNIX MAGAZINE 1991.6
chown root del chmod 755 del chmod u + s del 実効ューザー id をスーパーユーザーのものにして実行 するようなプログラムを書くときは、とくに注意しなけれ はならない。そのプログラムはシステム全体にアクセスす ることが可能で、すべての制限はプログラム本体に明示的 にコーディングされていなければならない。ファイルに対 する権限のチェックは実効 id ではなく、実 id に対してお こなわなければならない。アクセス・システムコールはこ の目的のためだけに用意されている。 $ H 〇 ME /. del へのアクセス性についてもチェックが必 要である。というのは、ユーザーが自分の H 〇 ME 環境変 数を変更することを防ぐ手段はまったくないからである。 また、 $HOME/. del には、その所有者といえども書込み許 可があってはならない。そのファイルは del 以外に書き込 まれてはいけないからである。 $ H 〇 ME /. del が 1 プロックを超えて大きくなることに ついては、すこしばかり注意が必要だ。新しいプロックは、 ューサーが復元しようとしている削除されたはかりのファ イルから取られるかもしれないからである。これは、 $HOME/. del を定期的にパージするか、 del を変更して 1 プロック内で循環するようにしておけば避けられる。 リスト 3 は、 undel のリストである。このプログラムは、 削除されたファイルを実際に復元する。ファイルは別のフ ァイルシステムに復元しなければならない。さもないと、 #include く math. h> #include く stdio . h> #include く fcntl . h> リスト 3 undel プログラム #include "del . 足 #include #include #include #include #include #include #include "unixlib. h" #include " syscalls. h" く sys/stat. h> く sys/ino. h> く sys/filsys. h> く sys/param. h> く sys/types. h> #include く string > #include く stdlib. h> #include く limits. h> く errno . h> / * プログラム名 * / UNIX MAGAZINE 1991.6 int main(int argc, char *argv[J) char *b1kbufvCINDIRECT MAX + 1 ] ; / * 大域データ * / #define USAGE "usage: " PROGNAME " fi1e [outfile]\n' #define min(a,b) ( (a) く (b) ? (a) : (b)) #define "undel" UNIX ファイルの復元■ 復兀しようとしているファイル自体に上書きしてしまうか もしれないからである。 ファイルを復元するとき、復元しようとしているファイ ルが削除されてから、あるプロックが使用されたか否かを 知る方法はない。復元されたプロックの一部に、そのユー ザーがアクセスしてはならない別のファイルからのデータ を含んでいる、という可能性はおおいにある。このため、 undel は set-user-id ビットをセットしていない。 undel を実行できるのはスーバーユーザーになれるユーサーだけ なので、復元されたプロックをもとのユーザーに返す前に その内容を注意深く調べる必要がある。 del プログラムは rm の完全な代用品になる。しかし、フ ァイルはほかの方法でも削除できる。たとえば、 mv やシェ ルのリダイレクト演算子わ〃である。 del と同様の復元情 報を保存する新しい移動プログラムを書くこともできるが、 リダイレクトについては新しいシェルを書く以外、できる ことがあまりない。そこまでしたとしても、プログラムは unlink を直接呼び出してファイルを削除できる。これらす べての可能性に対応する唯一の方法は、 unlink をインタ ーセプトすることであろう。これは、オペレーティング・ システムのカーネル内部でのみなしうることである。 ・ LyIe Frost コンサルティングとソフトウェア開発の Citadel 社のオーナー UNIX multitasking(Computer Language 誌 1990 年 7 月号参照 ) UNIX REVIEW 1990 年 10 月号より 「 UNIX File Recovery 」 の筆者でもある。 / * プロックノヾッフア・べ クトル * / 115
\ 山とロも 増え続けていくテ - タどうしますか ? 情報の消化不良でお悩みの方に 三井石化大容量ティスクシステム。 •Sun/SPARCstation 対応、 大容量ティスクシステム登場。 ユニークな商品構成とバラエティに富ん だホストへの対応で総合力の高さを誇 る三井石化に新しい顔が加わりました。 Sun/SPARCstation 対応、高速・大容量 ティスクシステムの登場で魂最高 16ms の高速アクセスを実現した八一ドティス クユニット“ HX シリーズ”はプラグイン 方式。誰にでも簡単にお使いいただけま 魂光ティスクユニット“ MX シリーズ”は 書換可能タイユ専用テノヾイスドライノヾを 用いて磁気ティスク同様に UN Ⅸファイル システムを構築することが可能です。 今話題の光ティスクから最大 660MB の 高速ノ←ドディスクまで、三井石化は大 容量記憶装置をトータルサポートします •Line-up 3.5 インチハードティスクユニット HX-303S (250MB/18ms) 大容量を手軽に使える 3.5 インチ← コンノヾクトサイズ。 5.25 インチハードティスクユニット HX-503S(320MB/16ms) HX-703S(660MB/16ms) 16ms の高速アクセスを実現。 高性能・高信頼性を誇る自信 作。 書換型光ティスクユニット MX-503S ( 650MB ) 5.25 インチのコンヾクトサイ。ー ズて、持ち運び自由のリムー バブレタイプ。大量テータの ノヾックアップに最適。 ・本品は外国為替及び外国貿易管理法に定める戦路物資 ( 又は役務 ) に該当するため、輸出する場合、同法に基 づく輸出許可が必要です。 ・仕様は改良のため予告なしに変更することがあります。 ・ OEM 供給も承ります。 ・記載されている会社名または製品名は、各社の商標ま たは登録標です。 0 三井石油化学工業株式会社 機能材事業部門光ティスク事業部 〒 18 東京都千代田区霞が関 3-2 ー 5 霞か関ヒル TEL. 03-3580 ー 3454 FAX. 03 ー 3593-0029 三 # 石化 資料請求 N 。 01 6
単独のフリープロックがすべて記されていなければならな い。しかしスーパープロックは明らかに、ファイルシステ ム内のすべてのフリープロックのアドレスを保持できな い (NICFREE は通常 50 程度にすぎない ) 。フリーリスト に十分な容量を与えるには、リンクプロックと呼ばれるフ リー・データブロックにチェインされなければならない。 s ー free がいつばいのときにフリーになるプロックは、リン クプロックになる。 s ー free の内容は新しいリンクプロック の先頭に移され、 s-free を空にし、リンクプロックのアド レスが s ー free の最初の要素に置かれる。リンクプロック がない場合には、 s-freeC0] は 0 である。 フリーリストの代わりに、ビットマップをプロック割当 ての追跡に使用することもできる。この方法は、ファイル システムの一部 ( 通常は、 i ノードリストとデータブロック のあいだ ) をビットマップのために必要とする。記憶領域の オーバーヘッドは重要ではない ( 1 プロックにつき 1 ピッ トにすぎない ) 。しかし、プロックが割り当てられるときの ビットマップ・サーチにかかるオーバーヘッドは、あっさ り見過ごすわけにはいかない。問題は、フリープロック・ アドレスを i ノードの場合と同様にキャッシュすることに よって解決される。 ロ ファイルシステムへの直接アクセス デバイスは、 open 、 read 、 lseek などを用いて、通常の ファイルと同様にアクセスされる。ファイルシステムに直 接アクセスするには、デバイス・スペシャルファイル名が 必要である。共通デバイスの命名には厳格な規則が適用さ れる。 通常、ファイルシステムは固定されたディスク・パーテ イションに格納され、 c / の s んの形式のファイル名がえ られる ( / はコントローラ番号、ゾはコントローラ上のドラ イプ番号、んはドライプ上のパーティション番号 ) 。これら はすべて、 0 から始まる 1 桁の小文字の 16 進数である。コ ントローラ 0 のドライプ 0 である c0d はなくなり、 0s 々の 形式の名前が残っている。パーティション番号 0 は物理デ イスク全体を表す。これより、ルート・ファイルシステム のためのデバイス・スペシャルファイルは 0S1 になる。 ディスクデバイスには、プロック・スペシャルファイル とキャラクタ・スペシャルファイルがある。両者は同し名 UNIX MAGAZINE 1991.6 UNIX ファイルの復元■ 前だが、 / dev 下の別々のサプディレクトリに置かれる。プ ロック・スペシャルファイルは / dev / ホんに格納され、キ ャラクタ・スペシャルファイルは / dev / S んに格納され る。キャラクタ・デバイスドライバは raw デバイスドライ バとも呼ばれる。これは、キャラクタ・テンヾイスドライバ がバッファリングされていないためである。そこで、ディ レクトリ名が r 赤々なのである。 キャラクタ・テンヾイスドライバはバッファリングされて いないので、読取りと書込みは全プロックに対しておこな われなければならない。一方、プロック・テンヾイスドライ バはデータのバッファリングをおこなうので、プロセスが 一部のプロックにアクセスすることができる。また、対応 するキャラクタ・スペシャルファイルとプロック・スペシ ャルファイルは同しデバイスに結びつけられるので、どち らも同しメジャーデバイス番号とマイナーデバイス番号を もっことになる。 指定されたファイル・ディレクトリをそのファイルシス テムから読み取るには、ファイルシステムのデバイスファ イル名がなんらかの方法で得られなけれはならない。 stat システムコールは、ファイルシステムのデバイス id を提 供するので第 1 段階としてはよい。しかし、いかにしてこ れからファイル名を導くかがはっきりしない。この答は、 固定ディスクのマイナーデバイス番号がどのように作成さ れているかということにある。 SystemV/386 では、マイ ナーデバイス番号のピット 0 ~ 3 にパーティション番号が、 ピット 4 ~ 5 にドライプ番号が、そしてピット 6 ~ 7 にコ ントローラ番号が含まれている。ほかのシステムの方法も 似通っているが、これは明らかに可搬性がいちしるしく低 いと考えられる。このためデバイス id とファイル名の変換 は、次ページのリスト 1 に示した関数 devtonam および namtodev のなかにまとめられている。 前述したように、 bat はファイルシステムから i ノード を直接読み取ることによってのみ得られる。リスト 2 ( 113 ページ ) に getdinode 関数を示す。これは、 ここに小した 原理と技法を用いて、ファイルのパス名だけが与えられた マウント中のファイルシステムからディスク i ノードを読 み取るのに使う。このために getdinode 関数は、 statfs を 用いて論理プロックサイズを、 stat を用いてデバイス id と i ノード番号を取得し、 devtonam を用いてデバイス id をデバイスファイル名に変換する。 i ノードはプロックの 111