倉敷芸術科学大学の ネットワーク構築 / 」寸林ロ真 続・ゼロからのメールサーバー 9 月に入ってから、大雨カÆいています。私の自宅は新 倉剪効尺前から徒歩 30 秒のマンションにあります。ある朝、 東京出張のために辛余線に乗るべく自宅を出ると、なんと 自宅前から駅前までの道がすべて、 10cm 以 E も緲して いました。なんとか駅までたどり着きはしましたが、もの ごころついてから水害というものを経験したことのない私 にとっては、かなり衝撃的な出来事でした。 十釮支術か発達した現 f 上会に住む私たちも、自然のカ を軽視することはできません。ちょっとした大雨でもこう なってしまうのですから、いつか大きなとばっちりを受け 。昨年は COP3 カ倞都て開催さその期策 るかも・ がインターネットで中継されました。この連載でも紹介し てきたネットワークの技術力立ー彳殳買ったわけですが、今後 もさまざまな分野にまたがるエコロジーに対する町絲はみが 必要になってくるのでしよう。 今月は、前回に引続きメールサーバー構築についての解 れる src/README ファイルを参照してください。 インストールのガ去については、展開したキットに含ま なところから入手してください。 ターネットの主要な FTP サイトに置いてあるので、適当 段階で入手可能な sendmail の最新版は 8.9.1 です。イン やっと、本命の sendmail のインストールです。 sendma ⅱのコン / イノレ 説です。 サイト固有の設定や、 sendmail の製作者が意図して に従って里するファイルを修正します。 存する部分の設定ガ去か解説されているので ( 図 1 ) 、孑ミ には、サイトごとに設定すべきマクロや、各社の OS に依 90 いる状況と異なる環境の場合には、 BuiIdTooIs/Site/ site ・ config. m4 ファイルを新規に作成して、このファイ ルに個別の設定を言当します ( 図 2 ) 。 sendmail をコンパイルするにはキットを展開したトッ プ・ディレクトリで make コマンドを実行します ( 図 3 ) sendmail の起動は /etc/rc. config に指定します ( 図 4 ) 。ただし、設定するのは sendmail の引数だけで、起 動するかどうかの選択などはできません ( 放っておくと sendmail か月手に起動してしまうということです ) 。 あとは、 sendmail の重川乍を設定する sendmail.cf ファ イルを作成して、 sendmail を起動けれは完了です。 sendmail.cf の設疋 CF のインストール sendmail の重川乍を設正する sendmail.cf ファイルは 1 UNIX MAGAZINE 1998.11 大ではとくに題なくコンパイルできました。 して "sh Build" を実行するように記されています。事実、倉敷芸科 かれています。しかし、 Makefile を見ると、 src ディレクトリに不打カ src ディレクトリにあるシェル・スクリプト Build を使いなさい」と書 1 README には「 sendmail をコンパイルするには make ではなく、 (sendmail.def) に記述して、この内容をもとに send- CF は、 sendmail の構成定義を独自の def ファイル sendmail. def の設定 カ川乍する環竟であればそのまま実行できるはすです。 CF-3.7Wp12) 。 CF は実行時に PerI を利用します。 PerI は CF-3.7Wpre7 を使用しました ( 工知点での最新版は 動生成する CF というツールを利用します ( 図 5 ) 。今回 ん。そこで、簡単な構成定義情報から sendmail.cf を自 書式が複雑で、手作業で細かく指定する気にはなれませ
SC 翡 アスキ - ・アジソン・ウェスレイ・プログラミング・シリーズ C + + による データ構造入門 トタ物ー入日 Ti mothy A. Budd 著 神林靖訳 B5 判 / 592 ページ 本体価格 6 , 800 円 リスト、スタックとキュー 木、探査、ハッシュテープ ル、集合とバッグ、グラフ など古典的なデータ構造を 最新のオプジェクト指向言 語 C + + を用いて解説した、 もっとも詳しいデータ構造 の入門書です。 http://w.w.arcs.ne.jp/direct/ Web で OK!! 0 プロフェッショナルのための C + + プログラミング Effective C + + 改訂 2 版 Scott Meyers 著 吉川邦夫訳 B5 判 / 272 ページ 本体価格 3 , 800 円 C から C + + への移行、メモ リ管理、コンストラクタ、 代入演算子、クラス / 関数 の設計と実装、継承とオプ ジェクト指向など C + + プロ グラマなら知っていなけれ ばならない 50 の TIPS を明 快に説明。 More Effective C + + 最新 35 のプログラミング技法 SCOtt Meyers 著 安村通晃、伊賀聡一郎、 飯田朱美訳 B5 判 / 300 ページ 本体価格 3 , 800 円 「 Effective C + + 改訂 2 版」 の続編。仮想コンストラク 夕、スマートボインタ、参 照回数計測、プロキシクラ ス、二重ディスパッチなど 35 種類の C + + プログラマ必 須の最新技法を解説します。 0 ′・ ct ⅳ 0 C++ -35 のフログラミング技 0 冊 C ++ 0 2 Windows プログラミンク Win32 プログラミング は韲◆ 大全 ( 上 ) プログラミング大金 Brent E. Rector Joseph M. Newcomer 著 株式会社クイック、和田なつみ訳 B5 判 / 836 ページ 本体価格 9 , 800 円 Windows プログラムの概念、 テキスト表示、グラフィック 表示、キーポードとマウスお よびタイマー入力、各種コン トロールなど、 Windows プ ログラムを作成するために必 要な知識を網羅します。 Win32 マルチスレッド プログラミング マチスレッド プ 0 ミング James E. Beveridge Robert Wiener 著 ま 有限会社インフォヒション訳 B5 判 / 376 ページ / CD - 日 OM 付属 本体価格 5 , 100 円 マルチスレッドの必要性や 待機、同期、制御方法など といったスレッドの基本概 念から、 C + + / MFC 環境に おけるマルチスレッドプロ グラミングおよびデバッグ 方法について実践的に解説。 Win32 プログラミング大全 ( 下 ) ◆ フ物グラミング大金 B 「 ent E. 日 ec 「 ま Joseph M. Newcomer 著 株式会社クイック、和田なつみ訳 B5 判 / 640 ページ /CD-ROM 付属 本体価格 8 , 800 円 ダイアログボックスやメニュー 各種リソース、印刷、メモリ管 理、フォント、 DLL 、 MDI 、同 期処理などについて解説。サン プルプログラムのソースコード や実行ファイルを収録した CD-ROM を付属。 Win32 ネットワーク プログラミング RaIph Davis 著 株式会社コムサス訳 B5 判 / 800 ページ / FD 付属 本体価格 7 , 800 円 Windows Sockets 、オーバー ラップレ O などのネットワー ク技法を詳細に解説。膨大な コード例と共に API の使用例、 クラスのカプセル化などのプ ログラミングテクニックを満載の 毎辺ネットワ - ク プログラミング Win-: 2 Win32 コンボーネント プログラミング ー 2 コン事ント プ 0 グラミング AI Williams 著 吉川邦夫訳 望 B5 判 / 352 ページ / FD 付属 本体価格 4 , 800 円 コントロールのサプクラス / スーパークラス化、 () C X コ ントロールの作成、 Win95 コ モンコントロールの利用など ソフトウェアコンポーネント の効果的な利用方法を、実例 をあげながら詳細に解説。 Win32 システム プログラミング ー既 2 鈔スム プ 0 グラミング Johnson M. Hart 著 株式会社コムサス訳 B5 判 / 352 ページ /CD-ROM 付属 本体価格 4 , 800 円 W ⅲ 32 API の中から、ファイ ルシステム、プロセス管理、 スレッド管理、プロセス間通 信、同期などといったシステ ムサービスのコア部分を実践 的なサンプルプログラムとと もに詳細に解説します。 MFC プログラミング Alan R. Feuer 著 株式会社ロングテール、長尾高弘訳 B5 判 / 416 ページ / CD - ROM 付属 本体価格 5 , 800 円 Microsoft 純正クラスライプラリの MFC を利用したプログラム構築に必 要なノウハウを豊富なサンプルプロ グラムと共に詳細に解説。 MFC のす べてがわかる、 W ⅲ dows プログラマ 必携の一冊。 Windows NT レジストリーガイド Weiying Chen Wayne Berry 著 あかいまこと、岸本のぞみ訳 B5 変形判 / 278 ページ /CD-ROM 付属 本体価格 3 , 800 円 Windows NT の環境設定データベース であるレジストリの構造や設定方法を 説明。さらに、レジストリ API を活用 した高度なプログラミングテクニック をサンプルプログラムと共に詳細に解 説します。 レジストリ - ガイド Windows NT プ 0 グング 企業内研修・引用によるカスタムメイド・ OEM 供給に関してのお問い合わせ先 . 法人営業担当 ( 03 ) 5351-8640 ・表示定価は消費税抜きです。・本製品は書店および書籍を扱っているパソコンショップでお買い求めください。・品切れの際は書店にてこ注文いただくか、通信販売を ご利用ください。・通信販売のお問い合わせ先 . 株式会社ダイレクト電話 ( 03 ) 5351-8202 http://www.arcs.ne.jp/direct/ 株式会社アスキー 〒 151-8024 東京都渋谷区代々木 4-33-10 出版営業部電話 ( 03 ) 5351-8194 http://www.ascii.co.jp/
CAFE BABE インターフェイスを実装します ( リスト 3-A)0 ・ enableInputMethods(true) を実行し、インブットメ ソッドカ硬えるようにします ( リスト 3-B)0 ・ KeyListener では、 KeyEvent により char 単位でテ キストか取得されるので、 KeyTyped(KeyEvent) メ ソッドに処理を言当します ( リスト 3 こ C ) 。 ・ lnputMethodListener では、 lnputMeth0dEvent により AttributedCharacterIterator として属性が 付いた状態のテキストか取得されます。そこで、 input- MethodTextChanged(InputMethodEvent) メソッ ドに処理を言当します ( リスト 3-D)0 ・ InputMethodListener が受け取るテキストには、コ ンポジション中のものと、すでに確定されたものの 2 種類があります。テキストの確定された部分は、 get- CommittedCharacterCount() を用いて判定します ( リスト 3-E)0 ・ AttributedCharacterIterator の描画に Java 2D を 使用します ( リスト 3-F)0 変換中のテキストのハイラ イトやアンダーライン処理などは、 Java 2D がおこな います。この場合、 AttributedCharacterIterator で 直接描画するのではなく、 TextLayout コンポーネン トを使って描画します。 TextLayout は国際化が考慮 されているため、キャレットの描画やマウスのヒット 判定などか容易になります。 入力された文字は、 KeyListener と InputMethod- Listener のどちらかで排他的に受け取るので、それを 前提としてテキストを管理する必要があります。ここで 間題になるのは、それぞれ char と AttributedChar- acterlterator という異なるデータとして受け取ること です。アクテイプ・クライアントでは、最終的に Java 2D に AttributedCharacterIterator として渡す必要 があります。このサンフ。ルでは、新しい Attributed- String を作成し、さらに属性をコピーしていますが、 JDK のサンフ。ル・プログラムのように、内部に 2 つの AttributedCharacterIterator をもつ CompositeIt- erator を定義する方法のほうがスマートです ( リスト 3-G)0 ・ InputMethodRequests インターフェイスで定義され ているメソッドを実装します ( リスト 3-H) 。ただし、 サンフ。ル・プログラムでは簡略化のためにキャレットの 110 図 10 アクテイプ・クライアントの実彳デ列 ⅱ Client 国特訐舒可局 図 11 パッシプ・クライアントの実彳」 東京特許許可局 処理などを省略し、具体的な処理は言当していません。 各メソッドの具ー勺な実装については、 JDK のサンプ ル・プログラムが参考になるでしよう。 リスト 3 を実行すると、図 10 のようになります。 パッシプ・クライアント・コンポーネントの実装 パッシプ・クライアント・コンポーネントは、次の点に 注意して実装します。末尾に掲げたサンプル・プログラム ( リスト 4 ) もあわせて見てください 2 ・テキスト編集コンポーネントのクラスに KeyListener インターフェイスを実装します ( リスト 4-A) 。 ・ enableInputMethods(true) を実行し、インブットメ ソッドが使用できるようにします ( リスト 4-B) 。 入力された文字は KeyListener で陬得します。 ・パッシプ・クライアントの場合、入力テキストは属性と は関係がないので、そのままでは AttributedCharac- terlterator を使用することはありません。 Java 2D を使わなくても描画できますが、 TextLayout コンポーネントを利用したほうか国際化に対応した処理 カ己しやすくなります ( リスト 4-C)0 ・ KeyListener では、 KeyEvent により char 単位でテ キストか取得されるので、 KeyTyped(KeyEvent) メ ソッドに処理を言当します ( リスト 4-D)0 リスト 4 を実行すると、図 11 のようになります。 非クライアントの実装 ゲーム・プログラムでキーポード・イベントを茁妾扱い たい場合など、入力をインブットメソッドに処理させたく 2 リスト 3 とい財このプログラムもパッシプ・クライアントの実物列を できるだけ簡単に示すために作及したものてす。 UNIX MAGAZINE 1998.11
連載 UNIX Communication Notes— ・障害対応の見落しカ鰔る は、下記のような利点がある。 障害管理におけるトラブルチケット・システムの利用に トラカレチケット・システムの利点 ケット専用のクライアントを用意する必喫がなく、 1 帯にを トラブルチ プラットホームで簡単に利用できる。さらに、 ムは、 UNIX や Macintosh 、 Windows など、各種の ースとのインターフェイスを作成する。このようなシステ サーバーをバックエンドに用意し、 PHP/FI でデータベ PostgreSQL などの WWW と相匪のよいデータベース・ えるようにしている細織も多い。データか増えてきたら、 チケットへの入力、情報の追加、一覧表示などをおこな とえば、簡単な CGI スクリプトを用意して、トラブル WWW システムを使ったシステムも簡単に作れる。た できる。 で、それほど大きな障害が発生しない場合にはすぐに利用 トウェアも不要なので、管理対象が小規模なネットワーク ていくガ去である。労力もそれはどかからす、特別なソフ 一番単純なのは、連番を付けたファイルに情報を言当求し いる。 トラブルチケットとして、いろいろなものが使われて トラカレチケット・システムの実際 タとしても使える。 る。また、障害管理スタッフの増員の必要性を示すデー スタッフごとの得意・不得意などの見極めにも便利であ 復旧作業に要した稼価加寺間の言算や、障害対応に関する ・人事管理に役立っ る際の参考にもなる。 は、システムの再言気や構造的要因による障害を鮹夬す システムに蓄積された言当勒般に立つ。このような記録 多いシステムなどを角財斤する場合、トラブルチケット・ 管理対象のネットワークで、障書の不鶤頁や頻度、障害が ・障害の角財斤に役立っ が使われる大きな理由の 1 つである。 スタマー・サービスなどでトラブルチケット・システム り、障害への対 ) 大況の孑当屋か容易になる。これは、カ 締茴しても鮹夬されていない障害をみつけやすい。つま 崟移の時刻か第当求されていれは、割当て後一定時間が 復旧し忘れた障害が発見しやすくなる。チケットに状 18 ネットワーク経由で共有できるといった利点もある。 ノート 6 今年 6 月に開催された NetWorld 十 lnterop ' 98 Tokyo の展示会場のネットワーク管理では、 WWW の CGI イン ターフェイスを使い、バックエンドに PostgreSQL を用いた NOC チーム自作のトラブルチケット・システムを運用した。 このシステムは、多くの部うゞ Perl で記述され、上交的矢可芋 間て構築できた。このようなシステムの開発は、ネットワーク 管理の楽しい側面である。 商用ソフトウェアとしては、 ClearHelpDesk (Clar- ify) や Remedy Help Desk (Remedy) 、 Support- Team (Scopus) 、 Vantive Helpdesk (Vantive) などが ある ( いすれも、日本言ヒされたシステムか版売されてい る ) 。これらのシステムは多くのサイトで顧客サービスな どに利用されているため、インターフェイスの使いやすさ やデータ管理の簡単さ、ネットワークへの対応など優れた 点が多い。予算的な間題がなく、強力なトラブルチケット・ システムの導入を考えている場合には検討の価値がある。 その他の便利な道具 Ethernet モニターなどのデータリンク・モニターは、 ネットワークの半飾寉な状態を孑当屋する際にイ叫リである。た だし、上交的高価なので、いきなり購入するのではなく必 要に応じてレンタルするとよいだろう。 携帯電話やポケットベルなどを用いて、管理者とつねに 叫各がとれる状態にしておくことも重要である。携帯電話 は、地工勺に離れたところで連携作業をおこなうような場 合に重宝する。ポケットベルは、 SNMP の NMS など にドライバを設定し、ネットワークに異常が生したときに NMS からポケットベルに直接通知するイ督目 . みにしておく と便利である。障害発生時に NMS がダイアログ・ウイン ドウで表示したり、メールを送るように設定していても、 見落しはなかなか防げない。その点、ポケットベルのほう が見落しの可能は低い。利用料金も安価なので、ネット ワーク管理によく使われている。 ☆ 今回は、障害管理体制の作り方と便利なツールを紹介し た。次回は、ネットワーク障害の典型的な症状と、その対 策について説明する。 ( やまぐち・すぐる奈良崙科 ! 物支術大完大学 ) UNIX MAGAZINE 1998.11
ワークステーションのおと一の 写真 13 拡張スロット 8 田 88 器 888 髜 - 髜 8888 写真 14 ディスクは Maxtor 製 ー第一 ( ( ・、せ 80 第】に 0 いをー “出新Ⅲ スピーカーの下には、ケースカ鯛いたことを感知する仕 組みが付いています ( デフォルトでは無効になっていま す。利用するには、 Compaq からケースを開閉するため のパスワードを取り寄せる必要があります ) 。 さきほども書いたように、拡張スロットが PCI x 1 十 写真 17 ESS のサウンドチップ PCI/ISA 共用 x 1 になりました ( 写真 13 ) 。 第朝 0 朝当を ハードディスクは Maxtor 製です ( 写真 14 ) 。 4000S を購入し始めたころは Western DigitaI の製品が多く、 やがて Seagate になり、山も匠では、 4000S のハードディ スクの修理を依頼すると、同容量の Maxtor 製ディスク に交換されるようです。 マサーポード 満足しています。これで、 Windows 95 と NT 4.0 の再 マサーポードは 4000S と同じく、電源部をはねあげて インストール、 Windows 98 へのアップグレード、勤務 ケープルを取り外すと簡単に引き出せます ( 写真 15 ) 。マ 先で標準的に使うソフトウェアのインストールと重川乍テス サーポードのディスプレイ・インターフェイスのそばには、 トなどをしてみて、何も間題がなけ川ま、標準の PC とし グラフィックス・チップ ATI Rage Pro Turbo AGP て使う予定です。 2X があります ( 写真 16 ) 。写真のチップの右側に白いス テストをしているあいだに、自宅で使う PC として欲 ロットがあり、ここにカ長のピデオメモリを入れます。電 しくなってきました。ただ、間題は秋葉原などの個人向け 源の下にあたる部分には、 ESS のサウンドチップがあり の販冗店では売っていないことです。 ます ( 写真 17 ) 。 ( さかした・しゅう ASTEC) 「み 43 ト 01J Deskpro EN SF は、 3 月号で書いた私の、、要望 " がほ は満たされたイ」 : 嶽になっていて、いまのところはおおむね 131 UNIX MAGAZINE 1998.11
連載 / UN Ⅸの玉手箱 この NIS クライアントに限り、 / b ⅲ / csh がログインシェ ルとして使われます。 設定されています。 ーサー情報とグルーフ請報に対応する部分は以下のように OS をインストールした状態では、 /etc/irs. conf のユ やグループファイルを修正する必要はありません。 したがって、 BSD/OS の場合はパスワード・ファイル /etc/nsswitch. conf ファイルて指定します ) 。 でまとめて言置できるようになっています (SoIaris では、 の不頁や優先頂位などを、 /etc/irs. conf というファイル する情報原 ( ローカルな設定ファイルや NIS 、 DNS など ) BSD/OS では、ユーサーやグループ、ホストなどに関 NIS のユーサー情報の設定 (BSD/OS) YPChpaSS(1) や yppasswd(l) などを参照してください。 限がいくつかあるので、詳しくはオンライン・マニュアル や passwd コマンドとはは 1 司じですが、これらとは違う制 スワードを変更することができます 21 。使い方は chpass 自分のログインシェルと GECOS 情報、後者は自分のノ、 ることが可能です。ー引殳ューサーか実行した場合、前者は ( マスターサーバー ) に登録されたユーサー情報を変更す chpass および passwd コマンドと同しで、 NIS サー 属していません ) 。これらのプログラムの実体はそれぞれ ています (BSD/OS にはこれらに相当するコマンドは付 bin/)ypchpass と (/usr/bin)yppasswd か用意され されている情報を操作するためのコマンドとして、 (/usr/ なお、 FreeBSD では NIS の passwd マップに登録 passwd(5) や group(5) にも詳しく書かれています。 ファイルの設定については、オンライン・マニュアル NIS 環境におけるパスワード・ファイルやグルーフ フ。の情幸ゞマージされます。 ルな /etc/group ファイルの情報に NIS の group マッ 末尾に、、十 " だけの行を追加します。これにより、ローカ イルを修正します。具イ勺には、 /etc/group ファイルの トで利用するには、 NIS クライアントの /etc/group ファ 一方、 NIS の group マッフ。の情報を NIS クライアン #passwd group #group nIS 10Ca1 continue ,merge nxs passwd 10Ca1 continue 21 ただし、これらのコマンドを利用するには、 NIS サーバー上で rpc ・ yppasswdd というデーモン・プログラムが走斷力されていなければな りません。 180 NIS を参照する設定も用意されていますが、デフォルト ではコメントアウトされています。 NIS の passwd マッ フ。や group マップを利用する場合は、それぞれの行頭の 、、 # " を削除するだけです。 ただし、 FreeBSD の場合と異なり、パスワード・ファ イルに、、十 " や、、一 " て始まるエントリを作成しても無見さ れてしまい、 passwd マップに登録されオ寺定のユーサー に対するログインの許可 / 不許可を制御することはできな いようです。つまり、 /etc/irs. conf で passwd nis" と いうエントリを有効にすると、 NIS サー ノヾーの passwd マップに登録されたすべてのユーサーがログインできるこ とになります。 ☆ 前回から 2 回にわたり、 UNIX におけるユーサーとグ ループについて、関連する設定ファイルを交えながら紹介 しました。 パスワード・ファイルを更新するためのコマンドとして は、 vipw や adduser などをとりあげました。後発のコマ ンドはそれなりに親切で多機能なのですが、昔から UNIX を使っている人にとっては vipw のはうがてっとり早く感 しられるでしよう。 vipw ではエデイタを使ってパスワー ド・ファイルを編集するので、ほかのマシンと同しユー ザーを追加する場合は、リモートログインしてエントリの 行をカット & ペーストできるというメリットもあります。 NIS クライアントのセットアッブ去も解説しました。 NIS サーバーの設定や、 NIS で提供されるユーサー / グ ループ以汐 ) 情報の利用ガ去については、機会をあらため て紹介するつもりです。 次回は、ネットワークにマシンを接続するときに必要な ホスト情報に関する話題をとりあげる予定です。 UNIX MAGAZINE 1998.11
プログラミング・テクニック ん。したがって、リンクを用いる方法のほうがお得といえ たことを示します。したがって、ほかのプロセスがすでに ます。 ロックをかけていたことを表しています。ほかの理由で失 敗した場合には、何隻繰り返してもやはり失敗となってし リンクを作成するガ去では、シンポリック・リンクを利 まうでしようから、再度ロックを試みるのは無意味です。 用する方法とハードリンクを利用するガ去とがあります。 あきらめるほうがよいでしよう。 よけいな領域を使わなくてすむのはハードリンクを用いる この方針にのっとってフログラムを作成すると、次のよ 去ですが、この場合にはすでに存在すると分かっている うになります。 ファイルからリンクを張る必要があります。また、 クを張るファイルとロックファイルは同一のファイルシ #include く stdio . h> #include く unistd . h> ステムに置カれていなければならないという制限もありま #include く sys/errno. 五 > す。ロックファイルを作成するためにその元となるファイ #define LOCK " /tmp/lock" ルまで作成するというのは、なんだかもったいないような 気がします。 一方のシンポリック・リンクの場合は、リンクか指す ファイル尉寺するための領域は必要になるものの、ハー ドリンクのような制限はありません。可能であれは、 で紹介したようにシンポリック・リンクを用いるはうがよ いと思います。 int main() buf [ 6 ] ; pid; sprintf (buf , "%d", pid = getpid()) ; while(symlink(buf, LOCK) ) if (errno ! = EEXIST) exit(l) ; printf ( " 危険領域に入る (%d)\n" , pid) ; s1eep(3) ; pri Ⅱ tf ( " 危険領域から出る (%d)\n", pid) ; un1ink(LOCK) ; exit(0); char int ク ッ ロ の で 五ロ 次は、 C 言語を利用している場合のロックの実現方法で す。シェル・スクリプトて利用したガ去をそのまま使うこ とができます。つまり、 mkdir 、 link 、 symlink システ このフログラムでは、たとえは / tmp ディレクトリが存 ムコールを利用してロックファイルを作る方法です。ロッ 在しなかった ( それはそれで、危険な状態ですか ) 場合に クファイルを作成するシステムコールを実行して、成功す も、正しく ( ? ) ェラー終了することができます。 れはロックがかけられたことになります。 C 言語を用いる場合には、 open システムコールや ただし、失敗したときには注意が必要です。システムコ creat システムコールもロックファイルの作成に用いるこ ールが失敗した場合には、なぜ失敗したのかを errno 変数 とができます。 の値から卩ヾます。コマンドの場合にはメッセージが出力 open システムコールは、第 2 引数としてファイルを されましたが、システムコールの場合には errno 変数にな どのようにオープンするのかを示すフラグを指定します。 ぜ失敗したのかを示す値かオ絲タされます。たとえは sym- ここに O-CREAT と O-EXCL の両方を指定するので link システムコールを実行した場合には、引数として指定 す。 O ー CREAT カ甘旨定されていると、ファイルが存雀し した値が不正な場合や、ファイルシステムがいつばいに ない場合には新たにファイルを作成するようになります。 なってしまっている場合など、いくつかの理由で失敗する O-EXCL カ甘旨定されていると、すでにファイルが存す ことがあります。 る場合にはエラーとなります。つまり、ファイルがまだ存 いま注目しているのは、すでにロックファイルか存在す 在しない場合にはファイルを作成し、ファイルか存在する るときに失敗する場合です。システムコールが失敗した場 場合にはエラーとなります。この挙動はシンポリック・リ 合には、 errno 変数の値が EEXIST となっていることを ンクと同様で、ロックファイルの作成に用いることができ 石忍する必要があります。この値が EEXIST なら、第 2 ます。 引数として指定したパス名のファイルがすでに存在してい 121 UNIX MAGAZINE 1998.11
NO 第 CE 写真 6 WebTop 写真 8 MS Word WO 朝 写真 7 xterm X ロれ 写真 10 NODE 2 の電原を切る 写真 9 Compaq NonStop (PowerLED が OFF) Cluster Top か現れます ( 写真 6 ) 。ここで xterm のアイコンを クリックすると、右側のフレームに xterm か表示され ます。 ーヨ殳に Windows NT と SCO UNIX は市場か競合 写真 7 ~ 8 は、 Web プラウサーヒで xterm と Win- するといわれていますが、実状はすこし違うようです。 dows 用の MS Word を利用しているところですにれ Windows NT は、 : 基幹業務用のサーバーとしては安定 は英語版ですが、日本譜阪もあるそうです ) 。 性に難があります。一方、 SCO UNIX は lntel アー NonStop CIuster キテクチャの PC 用 UNIX として高い評価を得ていま す。そこで、クラスタサーバーを用いた大規模なシステ Compaq のプースでは、同社のサーバーを Unix- ムでは、基幹業務に SCO UNIX を導入し、その周辺 Ware NonStop CIuster でクラスタ化したシステムを のシステムには Windows NT を利用するといった考 展示していました ( 写真 9 ) 。 え方があるようです。ただし、今後出荷される NT 5.0 このクラスタサーバーは 6 台の PC サーバーから構 などが安定してくると、この構図も変化していくかもし 成されており、クライアントからは 1 つのシステムとし て扱うことができます。 6 台のサーバーのうちの 1 台の れません。 PC のスイッチを OFF にするデモンストレーションが おこなわれました ( 写真 10 ) 。 クラスタサ→ヾー側では、電源を切った 1 台を残りの 5 台かオ剱日したと通知していますが ( 写真 11 ) 、クライ アント側からは何事もなかったかのようにみえます。 電源を切った PC を再起動 - す - ると、ふたたび 6 台の クラスタサーバーとして復旧しました。 ) 1 第 0 材 0 い 4 い 0 ⅲ et ー・′ Tarantella W 00E0 tO yo 町 webtop! 写真 11 サーパー側では NODE 2 が落ちたことをミロ ′第 p ′レ ta 社る 補れ健一一簡一第を 0 y. 新 tC 引ー諸一 0 第 NT と SCO UNIX ☆ ふだん、私は UNIX を、、研究活動 " のために利用し ています。今回のフォーラムでは、、企業活動 " を支え る UNIX を垣間見ることができました。もちろん、両 者に共通する部分はたくさんありますが、信頼性の高さ や保守管理の容易さなど、あらためて UNIX の奧行き の深さを感しさせられました。 ( おおえ・まさふみ奈良先立醤斗物支術大煢完大学 ) 13 UNIX MAGAZINE 1998.11
図 1 TaranteIIa の構成 Mainframe Windows NT TarantelIa UNIX アプリケー アプリケー プローカー層 ンヨン ション . 層 NO 第 CE 図 2 X プロトコルと AIP AIP X 、工 - ン・シこ / Tarantella X プロトコ丿レ X のアプリケーション クライアント 画面描画など つ J ava AppIet Windows PDA Java NC Kiosk PC ストール、トラブルへの対応などの保守管理に追わ OS のバージョンアップやアプリケーションのイン 1. 作業効率の向ー E を目指して PC を導入した企業では、 個々の話のなかでは、とくに次の 2 点カ喞象に残りま ーラビリティがある。 ・各ューザーの環竟をサーバー側で f 尉寺するため、スケ できるので、運用コストが咸らせる。 ・ OS やアプリケーションをサーバー側で一括して保守 でに整っている。 ・クライアントて利用できる Java 対応のプラウサがす 発や、それに関する運用者の育成コストを減らせる。 ・リモート・メンテナンス専用のアプリケーションの開 の狭い或も利用できる。 サーバー・クライアント間の通信に、モデム経由など ・既存のアプリケーションの変更か不要。 あります。 Tarantella を導入した目的は、おもに次のような点に Fone の 4 糸励ゞ紹介されていました。これらの糾織が 導入事例として、 ETTDC 、 NASA 、 MCI 、 Movie- Tarantella の導入事例 モデムでも一ト分なパフォーマンスか得られるそうです。 め、サーバー・クライアント間の通信では、 33.6Kbps の ます。 AIP は、 X プロトコルより軽く言にれているた で、アプリケーション自体はサーバー側で実行、管理し UNIX MAGAZINE 1998.11 れ、かえって作業効率の低下を招いている。しかし、 Tarantella を導入すれは、クライアントとしては、 サーバーからのイベントを処理するための Java 端末 (Thin CIient) を用意するだけでよく、 OS やアプリ ケーションはサーバー側で一寸舌して管理できるように なる。 2. 全米各地に分散したサーバーを保守する場合、利用可 能な通信帯域が LAN にくらべてはるかに狭いため に、 x を用いた保守ツールは使えない。狭い帯域に適 した保守ツールを使えばいいが、開発や教育のコスト がネックになる。 Tarantella を導入すれば、狭い帯 域でも既存の X アプリケーションが使えるため、コ ストカ哨咸できる。 これにより、インターネット経由でのアプリケーショ SSLv3 、 X. 509 に対応し、セキュリティ機能を強イし ・セキュリティ機能への対応 とおりです。 れました。 Tarantella 1.1 からのおもな強イ匕点は以下の 8 月末に、 Tarantella の新ノヾージョン 1.2 が発表さ TarantelIa 1 .2 荷に応して変更できる。 クライアントは、セッションを管理するサー・一を負 ・ロードノヾランスのじ攵善 = ンの操作が可能になる。 11
連載 / UN Ⅸの玉手箱ー⑨ 図 2 インストール直後のグループファイル wheel : * : 0 : root daemon : * : 1 : daemon kmem:*:2:root sys : * : 3 : root tty : * : 4 : root operator: * : 5 : て 00t mail : * : 6 : bin : * : 7 : news : * : 8 : man : * : 9 : games:*:13: staff:*:20:root guest:*:31:root uucp : * : 66 : xten:*:67:xten dia1er:*:68: network: * : 69 : nogroup: * : 65533 : nobody: * : 65534 : を指定できますが、実質的には使えないので 2 、 しておきます。 ・ GID * に グループをマシン内部で識別するための番号を指定しま す。図 2 は FreeBSD をインストールした直後の / etc /group ですが、 wheel グループ 3 のはか、 daemon や krnem など、システムか利用するいくつかのグループ があらかしめ求されています。これらのグループには 1 桁あるいは 2 桁の小さな番号が使われています。独自 にグループを追加する場合は、これよりも大きな番号を 使うといいでしよう。 ・ユーサーのリスト グループに所属するユーサーを、カンマで区切って列挙 します。たとえは、 wheel グループに最初に登録されて いるのは root だけですが、ユーザー null を追加した wheel: * : 0 : て 00t ,nu11 い場合は以下のように指定します。 UNIX MAGAZINE 1998.11 アカウント操作のコマンド群 パーユーサーになれるユーサーのグループ」を未します。 3 wheel グループの GID は 0 で、「 ()u コマンドなどを使って ) スー 2 たとえば、グループのパスワードを作るためのコマンドはありません。 中身を見ることもできません。スーパーユーザーがパスワ す。ー殳ユーザーは、 /etc/master. passwd ファイルの ファイルを直接変更できるのは、スーパーユーサーだけで これまでに紹介したパスワード・ファイルとグルーフ ード・ファイルにエントリを追加したり、変更する場合、 人間にとって分かりやすいフォーマットではないため、工 更が反映されないなどのトラブルが生します。 イルに対する変史を同時におこなおうとすると、一方の変 ーパーユーザーになれるような場合は、パスワード・ファ シンがネットワークに接続されていて複数のユーサーがス デイタなどで妾扱うとミスを犯しがちです 4 。 また、マ 167 ド・ファイルを変史しただけでは効果がありません。 イルから生成さオけこデータベース・ファイルを使うため、たん : ン、スワー 4 さらに、 FreeBSD や BSD/OS ではテキスト形式のパスワード・ファ vipw: rebuilding the database. /etc/pw. NE1043 : 14 lines, 962 characters ( ェデイタを終了 ) り返しています。以ー司様 ) 。 編集するかどうかを訊いてきます ( 誌面の都合 - E 、て折 ていると、 vipw は以下のようなメッセージを表示して再 タベース・ファイルを作成します。フォーマットか間違っ ルを /etc/master. passwd ファイルにコピーして、デー チェックし、フォーマットに間違いがなけれは一時ファイ pwd ー rnkdb コマンドを使ってファイルのフォーマットを 編集作業が終ってエデイタを終了すると、 vipw は 名 ) を設定しておくと、好みのエデイタで編集できます。 ⅵですが、環境変数 EDITOR に別のエデイタ ( のパス いった名前になります。デフォルトて起重丿けるエデイタは イルを開きます。ー引ファイルは、 /etc/pw.xxxx:rx" と を一時ファイルにコピーし、エデイタを起動して一 - 印ファ vipw を実行すると、 /etc/master. passwd ファイノレ ルを回避できます。 同時にパスワード・ファイルを変更することによるトラブ あいだは、はかのユーザーは vipw を起動できないため、 す。 vipw を使ってパスワード・ファイルを編集している FreeBSD や BSD/OS では /usr/sbin に置かれていま 加えるためのコマンドで、上如勺古くからあるものです。 vipw はパスワード・ファイルに追加あるいは修正を VIPVvr できるコマンド群を紹介します。 そのあとでスーパーユーサーと一ヨ殳ューサーの両方が利用 す。まずスーパーユーサーだけか利用できるコマンドを、 除き、これから紹介するコマンドを利用したはうが無難で したがって、やむをえす直接ファイルを編集する場合を