必要 - みる会図書館


検索対象: UNIX MAGAZINE 2002年2月号
118件見つかりました。

1. UNIX MAGAZINE 2002年2月号

- クの 0 特集 情報の共有 ( 2 ) ーメールの活用 山口英、中村豊 メーリングリストを使いこなす 去も丘は、誰もが電子メールを使うようになりました。多 くの人力畤っている携帯電話にも電子メールをやりとりす る機能があり、イ士事だけではなく、プライベートな用件に も利用するのが当り前になっています 今回は、ひろく普及している電子メールを用いた情報共 有のガ去について説明します。 電子メールは、これまで長いあいだ使われてきた、、手 紙 " の電子版といってもよいでしよう。ただし、物理的 な本を利用しない、電子的な手紙であるからこそ実現で きる機能がたくさんあります。たとえば、 CC (Carbon Copy) や BCC (Blind Carbon Copy) などを使えは、 手紙のコピーを簡単にほかの人に送れます。誰にコピーを 送ったかは、 CC では本来の受信者に通知され、 BCC で は伏せられます。 CC では、そのメールを誰が受け取ったかは一目瞭然な ので、すべての受信者のあいたて情報を共有していること がはっきり分かります。しかし、場合によっては、誰にコ ピーを送ったかを本来の受信者に伏せておいたはうか話が スムーズに進むこともあります。そのようなときは BCC を使えばいいでしよう。送信者は個々の受信者をよく知っ ているが、受信者同士はあまりつきあいがない、といった ときにも BCC はイ甦リです。ヘッタ部に、 To: 送信者のアドレス Bcc: 受信者のアドレスを列挙 と言当してメールを送れば、受信者には送信者のアドレス UNIX MAGAZINE 2002.2 か分からないからです。 CC や BCC はイ叫リな機能ですが、使い方を誤ると円滑 なコミュニケーションの妨げになることもあります。それ ぞれの違いをよく理解したうえで、状況に応して適切に使 い分けてください。 これら以外にも、電子メールには機密をイ尉寺するための メール本文の暗号化やデジタル署名、あるいは、画像、音 声、プログラム、データファイル、 Web ページなどを添 付できるといった機能があります。 こまでに挙げた機能は、ユーサーが電子メールの読 み書きに使うプログラム、いわゆる MUA (Mail User Agent) によって実現されています。世の中にはさまざま な MUA がありますが、メールの読み書きや送受信など の基本的な機能はほとんど変わりません。ただし、より使 いやすくしたり、独自の機能が追加されているものもあり ます。たとえば、数年前に登場したポストペットという MUA には、ちょっと変わった仕掛けが用意されていま した。メールのヘッダ部にポストペットに関する情幸、記 載されており、そのヘッダ情報を MUA か解釈すること によって、画面に表示されるキャラクターか変わったり するのです ( 当然のことながら、この機能を楽しむには、 ヘッダに書かれた情報を解釈できる専用の MUA が必要 になります ) 。これは、 MUA 独自の機能の典型的な例と いえます。 電子メールを使いこなすには、利用している MUA の 機能をよく理解することが重要です。描丘は、フリー フトウェアとして公開されているものから商用アプリケ 83

2. UNIX MAGAZINE 2002年2月号

新・倉敷芸術科学大学のネットワーク構築・・・ 16 図 5 FilerView による NFS の言聢 COt ⅲ 9 e NFS 物“ k 聞 0 ・を NFS → Configure ーれ 21 主 第朝 Vo ん m ” 朝 Disks 由朝 CIFS 第ロ T 工 コ、戓工 由朝 S “田 i 上 田朝 S ド、工 をコロ明一 由朝 T 面 e s ね加、 : コ W 辷転 ます。 1 制は、訌は XXXXXXX PCNFS E れ曲 d : 'ebNFS R00 [ Dir を員 0 「 y [ れ ab ・ 'ebNFS Ro 硬 0 ⅳ e 員 00 : 「 - C Ⅱ”を S いい 3 い c 引 NFS 0ve 「 TCP: R 0 社製鱸 u 第 Of 2 聞 : 2 XX このガ去は、おもに次に紹介するポリュームをマウント するガ去と組み合わせて使います。 リモートホストで volO をマウント ウント後に、かならすルートボリュームの /etc/exports 定をあらかしめおこなっておく必要があります ( 図 6 ) 。マ exportfs コマンドで / V01 / V010 に対するマウント設 この場合には、ルートボリュームをマウントできるよう るわけです。 イタを利用して Data ONTAP の設定ファイルを編集す 集することかできます。つまり、リモートホスト上のエデ CIFS で ) マウントすれば、各種の設定ファイルを直接編 リモートホストからこの /voI/voIO を (NFS または 準では、 /voI/v010 がルートボリュームになっています。 と区別するために、、ルートボリューム " と呼ばれます。標 す。このポリュームは、ユーサーカイ吏うデータポリューム 身の設定もファイル・ポリュームのなかに言求されていま Data ONTAP の設定、すなわち NetApp Filer 自 フロッピーからの起動 ファイルを修正します。 期化したいときは、付属のフロッピー ( 3 オ好目 ) から起動 起動できなくなった場合、あるいは意図的にディスクを初 イルの言当を間違えてルートボリュームから通常どおりに 管理用のパスワードを忘れてしまったり、 /etc/rc ファ 62 しなければなりません。 図 7 の例では、ディスクを初期化しています。通常は、 インストール時にべンダーのエンジニアが最初におこなう ・作業てす。ものはためしと実行してみましたが、あまりに 時間がかかるのでげんなりしてしまいました (72GB のデ イスク 9 台がホットスペアになっている状態で、初期化 には約 260 分かかりました ) 。 Data ONTAP の設定 だけで、最低限必要な初期設定ができます。 Data ON- コマンドが用意されています。簡単な質間に答えていく Data ONTAP の ] 期成疋をおこなうために、 setup setup コマンドによる設疋 UNIX MAGAZINE 2002.2 There iS Ⅱ 0 time zone named GMT tO complete setup. http : / / 202.244.161.100/api http://192.168.10.2 / api or one Of http://nf01/api Point a web browser tO through the web interface? [ 司 : yes WouId you like t0 continue setup うための URL が表示されます 間はそこて訂ち切られ、下記のように残りの設定をおこな という質問に、、 yes " と答えると、 setup コマンドによる質 interface? [n] : WouId you like to continue setup through the web 管理クライアントの IP アドレスを指定します。 ントに限定したければ、、、 192.168.10.1 " のように、その のところで、、 a Ⅱ " を設定しています。特定の管理クライア istration host [ ] : Please enter the name or IP address of the admin- の例では、 設定や管理用クライアントの登録が必要になります。図 8 め、 setup コマンドを利用する場合にも、ネットワークの をマウントすることで各種の設定をおこないます。そのた TAP では、管理用クライアントからルートボリューム

3. UNIX MAGAZINE 2002年2月号

V Ⅳ 0 Workstation 3.0.0 RAM ディスクにアクセスできてしまいました。さらに、 クする。 ・ " を選び、 [ 次へ ] DVD-RAM のドライプに、共有 " を設疋し、 smbmount 5. 、、一覧から〕尺したハードウェア・・ コマンドを用いてホスト OS から Windows のフォル をクリックする。 6. 、、 SCSI と RAID コントローラ " を選び、 [ 次へ ] をク ダをマウントすると、 Linux から UDF フォーマットの リックする。 DVD ー RAM 上でファイルを読み書きできるようになりま 7. 、、ディスク使用 " をクリックする。 した。いまは、かっての冒険を思い出しながら、満足した 8. 、、製造元のファイルのコピー元 " に 日々を過ごしております。 ホスト OS の準備 と指定し、 [OK] をクリックする。 Generic SCSI デバイスの機能を使用するには、カー 9. 、、 VMware SCSI Controller" を〕尺して [ 次へ ] を ネル 2.2.14 以降の sg ドライバが必要です。それ以前の クリックする。 カーネルを使用している場合は、カーネルをアップグレー 10. [ 次をクリックする。 ドしてください。また、 2.2.14 以降のカーネルを使って 11. [ 続行 ] をクリックする。 いても、 sg ドライバが組み込まれていなければなりませ 12. 院了 ] をクリックする。 ん。もし sg ドライバを組み込んでいないのなら、、、 make menuconfig" を実行し、、、 SCSI support" から、、 SCSI Windows XP のインストール時に、最初から BT ー 958 generic support" を設疋してカーネルを明冓築してくだ のデバイスドライバをインストールする方法もあります。 さい。 その場合の手順は後します。 sg ドライバをカーネル・モジュールて構築してもかま 一方、 Windows NT では以下の手順でドライバを追加 いませんが、その場合には、 します。 # modprobe sg 1. コントロールバネルの、、 SCSI アタブタ " を開く。 を実行するのを忘れないようにしましよう。 2. 、ドライバ " タブを選んで [ 追加 ] をクリックする。 ゲスト OS の準備 3. 、、 BusLogic MultiMaster SCSI Host Adapters' を 選んで [OK] をクリックする。 ゲスト OS が SCSI 機器にアクセスできるように、 4. NT 4.0 のインストール CD を CD-ROM ドライプに BT ー 958 のテンヾイスドライバを組み込みます。 Linux や 挿入し、 FreeBSD の場合はとくに間題はないはすですが、 Win- dows XP と Windows NT には落し穴があります。 D: \ 1386 Windows XP には、 BT ー 958 のテンヾイスドライバが と入力して (D は CD-ROM のドライプ文字 ) 、 [OK] まれていません。そのため、 VMware の Web ページか をクリックする らダウンロードできる XP 用の SCSI デバイスドライバ 5. 再起動するかと訊かれるので、かならす [ はい ] をク をインストールする必要があります。すでに仮想 PC に リックする。 XP をインストールしている場合は、次の手順で追加イン これで、次に Windows NT が起動するときには、 ストールします。 SCSI アタフ。タか認識されているはすです。しかし、あと 1. コントローノレヾネルの、、ハードウェアの追加 " を開く。 から SCSI ドライバをインストールすると、どうやら PC ー 2. [ 次へ ] をクリックする。 net のドライバか仂、なくなってしまうようです。 3. 、、はい、ハードウェアを接続しています " を選び、 [ 次 「ネットワークかむば一一つく ! 」 へ ] をクリックする。 と叫んでも戻ってきてはくれません。ネットワークに機嫌 4. 、、インストールされているハードウェア " から、、新しい をなおしてもらうには、いったんネットワーク・ドライバ 、、ウ屋アデバイスの追加 " を選び、 [ 欠、 ] をクリッ 0 1 三 37 UNIX MAGAZINE 2002.2

4. UNIX MAGAZINE 2002年2月号

になります。それなら、わざわさ唳り値をチェックする必 要もないというのが作者の考えでしよう。 こまでに紹介していない次の この関数の後半部では、 ようなシグナル里の呼出しがおこなわれています。 (void) sigsetmask(sigb10ck(0) & ~(1 くく (SIGTSTP-I))) ; ます内側からみていきましよう。 sigblock は、現在プ ロックされているシグナルの集合に、引数として指定した シグナルの集合を追加するためのシステムコールです。 こでは引数に 0 を指定しているので、プロックされるシ グナルの集合に変更はありません。この呼出しは、戻り値 を得るために利用しているだけです。 sigblock システム コールは、現在プロックされているシグナルの集合を表す 値を返します。ここでは、現伏の値を取得するためにこの システムコールを使っています。 sigsetmask システムコール呼出しの引数では、 sig- block により返される値 ( 現在プロックされているシグ ナルの集合 ) から SIGTSTP シグナルを除外する竹喋を おこなっています。そのため、ます SIGTSTP を表す 集合を構築し (1 くく (SIGTSTP-I)) 、その補集合をとって います (~(1 くく (SIGTSTP-1)))0 さらに、現在のプロッ クされたシグナルの集合との積集合をとり、引数としてい ます。 sigsetmask システムコールは名前が示すとおり、プロ ックすべきシグナルのマスクを引数として渡すと、それ をプロセスのシグナルマスクとして設定するための関数で す。このシステムコールでおこなう処理は、上で作成した 、、もとのシグナルマスクから SIGTSTP を除いたもの " を 設定する竹喋になります。 こて利用している sigsetmask や sigblock しつは、 などのシステムコールはいまでは旧く、代わりに sigproc- mask システムコールを利用することになっています。 sigprocmask(how, &set' &oset) 第 1 引数の how には、このシステムコールでおこなう 処理を示す記号定数を指定します。 SIG BLOCK : sigblock システムコールと同様に、指 定したマスクを現在のマスクに」助日する。 SIG-UNBLOCK : 上でおこなった処理のように 定したマスクを現在のマスクから削除する。 UNIX MAGAZINE 2002.2 プログラミング・テクニック SIG-SETMASK : sigsetmask システムコールと同 様に、指定したマスクをプロセスのシグナルマスクとす る。 第 2 引数の set には、 sigset-t 型のアドレスを指定しま す。 sigset-t 型の値として、指定したい値を渡すのです。 第 3 引数の oset にも sigset-t 型のアドレスを指定します が、こちらは sigprocmask システムコールから値を返す ためのものです。処理をおこなう前の、現在のシグナルマ スクの値カされます。この値が不要な場合には NULL を指定できます。 sigprocmask システムコールを使うと、さきはどの、 (void) sigsetmask(sigblock(()) & ~(1 くく (SIGTSTP-I))) ; という呼出しは以下のように変更できます。 sigset—t sig; SIGEMPTYSET(&sig) ; SIGADDSET(&sig, SIGTSTP) ; sigprocmask (SIG—UNBLOCK , &sig , NULL) ; 行数は長くなりますが、こちらのはうが分かりやすいの ではないでしようか。 ☆ 今回は、プログラムの実行中に外部から特別な処理がお こなえるシグナルについて説明しました。シグナルを処理 するには、シグナルハンドラを作成してあらかじめシステ ムに登録しておきます。シグナルが発生すると、システム が自重加勺にシグナルハンドラを呼び出すので、プログラム ではいつシグナルが発生するかを気にする必要はありませ ん。 シグナル処理というと難しそうですが、 signal 関数を 使えは上如勺簡単に割込み処理のプログラムが作成できま す。ためしに、 SIGINFO シグナルに対するシグナルハン ドラを書いて、プログラムの実行中にステータス情報を出 力してみてはいかがでしよう。 73 ( たしみ・ひさかす )

5. UNIX MAGAZINE 2002年2月号

横着プログラミ / グ 高林哲 Migemo 日本語のインクリメンタル検索 図 1 インクリメンタル 「知識には 2 つのタイフ。がある。 1 つは物事を知っている こと。もう 1 つはそれをどこでみつけるかを知っているこ 肥 report gives a def 工建昭・ descri tion of the Schane. とである」 サミュエノレ・ジョンソン 前号では、記慮力の弱さを補う手段として、 UNIX の メモ技術をとりあげた。しかし、いくらメモをとっても、 いざというときに必要な情報をみつけだせなけ川ま意味が ない。そこで、今回は日本語のテキストを素早くインクリ メンタル検索するソフトウェア Migemo を紹介する。 横着と短気 1 ()I 」 ndame.ntal The report g 釦 e ユ defining descri tion of the SchaTle. l-search : s The report gxves a defi.ning descl tion of the Schecne. l—search : SC The report gxves a deflrnng descri . tion of the Sc e. l-search : sch 私は物に対して一一とくに言算機に対して短気である。 といっても、怒り心頭に発して物を破壊するわけではな する過程を示したものだ。 く、文句を言うだけである。「なんなんだコイツは ! 」など この例では、利用者は、、 C-s s c h" の 4 打鍵で目的の と計算機に向かって怒っていると、よく「お前こそなんな テキスト位置に到達している 2 。一方、通常のキーワード んだ ! ? 」と周りの人間から白い眼でみられる。 検索では最初にキーワード全体を入力しなければならない それはさておき、私のように横着かっ短気な人間は、計 ので、すくなくとも、、 s c h e m e" の 6 打鍵か必要に 算機を使う際の基本的な行為であるテキストの検索などに なる。インクリメンタル検索を使えば、 floccinaucinihili- 手間がかかるのは耐えられない。以下で紹介する Migemo pilification のような長い単語 3 でも最初の数文字を入力 は、いわば横着と短気から生まれたソフトウェアである。 するだけで検索できる。 インクリメンタル検索は、テキスト内から情報を探す用 インクリメンタル検索 途だけでなく、目的の位置にカーソルを素早く移動させる ためにもよく使われる。たとえば、テキストエデイタで インクリメンタル検索とは、ユーサーが 1 文字入力する カーソルを遠くに移動したい場合、カーソルキーを何回も たびに検索を進める手法である。この手法は、 Emacs な 叩くよりも、キーワードの数文字を入力して検索したほう どのテキストエデイタでひろく用いられている。図 1 は、 Emacs で、、 scheme" という単語をインクリメンタル検索 2 C-s は、 CtrI キーを押しながら s を押すという操作。 Emacs のテフォ ルトの設定では、前方インクリメンタル検索 (isearch-forward) の開 始に割り当てられている。 1 James Boswell, The ん可 S 佖 m 社 e に / 0 んれ so れ , 1791 ; 訳 : 3 floccinaucinihilipilification は、価値のない " という意Ⅱしば 中野好之訳「サミュエル・ジョンソン ( 1 ~ 3 ) 、みすす書房、 1981 しば、もっとも長い英単言韶 ) 例として引用される。 ~ 1983 年 ) ()I 」 ndame.nt.a-l - * * l.search ( undmental —J: * * i_search (FDnda11entaI 129 UNIX MAGAZINE 2002.2

6. UNIX MAGAZINE 2002年2月号

UNIX システム上て利用可能な IMAP サーバーとして は、ワシントン大学で開発されている UW IMAP サー バーと、今回とりあげる Cyrus IMAP サーバーがありま す。 Cyrus IMAP サーバーは、 CMU ( カーネギーメロン 大学 ) で開発されたもので、次のような特徴があります。 ・システムにログイン・アカウントを用意することなく、 複数のユーサーのメールポックスを管理することができ る。これにより、メールサーバーにユーザーごとのログ イン・アカウントを作らすにすみ、セキュリティ・レベ ルを上げることができる。 ・メールポックスは IMAP サーバーが独自に管理をおこ なう。また、同じメールポックスへの複数同時読み書き が可育 ・ユーサーは、 IMAP 、 POP3 、 KPOP (Kerberos 誌 証をおこなう POP) のいすれかを用いてメールを操作 することができる。 ・メールポックス内でのフォルダの階層化と quota ( ディ スク容量の割当て制限 ) をサポート。 これら以外に、メールフィルタ言語である Sieve にも 対応しています。 Sieve の言岩田は、 RFC3028 [ 6 ] や Sieve のⅥ第 b ページ 8 を参照してください。 IMAP におけるセキュリティ POP と同様、 IMAP だけではメールに関する操作を おこなっている最中に盜聴されるおそれがある 9 ので、さ まざまな暙号化アルゴリズムや認証方式をサポートしてい ます。 Cyrus IMAP サーバーでは、基本的に Cyrus SASL (Simple Authentication and Security Layer) [ 8 ] ライ プラリがサポートしている認証機構を利用します。 ・ PLAIN 平文パスワードによる認証ガ去です。 SMTP START- 8 http://www.cyrusoft.com/sieve/ 9 コネクションを糸第し続けるという点では、 POP より危かもしれませ ん。 う。 POPPer の起動オプションに—s を追加すると、 syslog によって図 22 のような糸兤 1 情報が出力されます。 IMAP UNIX MAGAZINE 2002.2 TLS[7] とともに IMAP がコンパイルされたときに有 効になります。ただし、平文パスワードのみによる認証 は、セキュリティ上きわめて危険なのて推奨しません。 ・ KERBEROS-V4 、 GSSAPI POP のところでも触れましたが、秘密音号によるネ ットワーク認証方法の 1 つです。 KERBEROS-V4 は Kerberos 4 に、 GSSAPI は Kerberos 5 に対応して います。 ・ CRAM-MD5 、 DIGEST-MD5 両方とも、 LDAP バージョン 3 のために提案された認 証方法てす。 LDAP とは、ディレクトリ・サービスに アクセスするためのプロトコルです。 MD5 ハッシュ関 数を用いたパスワードによる暗号化をおこないます。 このほかに、 RFC2246 にもとづく TLS をサポートし ています。 IMAP では STARTTLS と SSL を用いた通 信が・可能です。 STARTTLS では、クライアントは IMAP ポート , 材妾 続し、それから STARTTLS コマンドを発行します。そ の後に、 TLS によるネゴシェーションカまります。 の機能を使う場合は、 OpenSSL とともにコンパイルする 必要があります。 SSL を利用して通信する場合、クライアントは異なるポ ート (imaps ポート ) への接続を要求されます。そして、 IMAP による通信の開始前に SSL セッションのネゴシェ ーションが始まります。 STARTTLS と同様、 OpenSSL とともにコンパイルする必要があります。 Cyrus IMAP サーバーの特徴 cyrus IMAP サーバーには、その他のサーバーと異な る点がいくっかあります。以下では、それらを簡単に紹介 します。 メールポックス名 Cyrus IMAP サーバーでは、メールポックス名を Net- News の名前空間のように管理します。すなわち、 ( ドット ) で区切られた階層的な名前空間をもちます。た とえば、ユーザー yutaka-n のメールポックスは、 user. yutaka-n となります。その下にある yutaka-n のメールポックス hoge は、 107

7. UNIX MAGAZINE 2002年2月号

あなたの会社を成功に導く、 オープンソース戦略があります。 * 2 : S 0 u 「 c e F 0 「 g e / V A L i n u x が提供する、オープンソース開発者が相互に協調して開発を進めるためのプラットフォーム。 h t t p : / / w w w . 0 s d n . j p * 1 : 0 S D N / V A L i n u x が運営するオープンソースに関する広範な情報を提供するサイト。 クアップ。 Linux の先駆であり、 Linux を知り尽くした私たち VA Linux が、あなたの会社を成功に導きます。 そしてサポートまで、本当の「トータル・オープンソース・ソリューション」の提供によって、企業を強力にバッ 用し、あらゆる業種、規模の企業に対応、 L i n u x に最適化したハードウェアやオープンソース・ソフトウェア、 安材料があることも事実です。私たち VALinux なら OSDN * 1 や sou 「 ceFo 「 ge * 2 から得られるリソースを活 セキュリティをも実現しています。しかし、 L i n u x の導入をお考えの企業にとって、サポート面などに関して不 L i n u x 。 L i n u x は、オープンソースのメリットをすべて備えている上に、ネットワーク環境で必要となる高度な スと信頼性を備えています。現在、オープンソースの中で最も多くの開発者、企業から支持されているのが、 オープンソースとは、コミュニティによって支えられているソフトウェア開発インフラ。高いコストパフォーマン トータル・オープンソース・ソリューションを提供できます。私たちは、 VA Linux いま企業に最も必要とされる指針。 Linux による VA L i n u x 44 5 2 ・ラックマウント型 4U サーバ ・ lntel@ Pentium Ⅲ Xeon M 900MHz 最大 4 個 ・最大メモリ 4GB ・ホットプラグ対応ティスクベイ 5 基 ・最大ストレージ容量 365GB ・ U 財 a160 SCSI VA Linux T262 ・タワー型サーバ ・ lntel@ Pentium Ⅲ 1 . OB GHz 最大 2 個 ・最大メモリ 4GB ・ホットプラグ対応ディスクベイ 6 基 ・最大ストレージ容量 438GB ・ U a160 SCSI L i n u X V A 5 Y の正統 5 T [ ー N U X E M 5 VA Linux Systems シャ / ヾン株式会ネ土〒 163 -0230 新宿区西新宿 2 - 6 - 1 新宿住友ビル 30F TEL : 03 -5323-3500 FAX : 03 - 5323-3501 info@valinux.co.jp http: 〃 www.valinux.co.jp 販売窓口 NTT コムウェア株式会社 L i n u x センタ T E L : 0 4 3 - 2 1 1 - 24 5 1 h t t p : //w w w. ⅱ n u x. n t tc 0 m . n e. j p / 沖電気工業株式会社ネットワークシステムカンパニ N TT 営業本部・ネットワーク営業本部営業推進チーム TEL : 03 - 3454 - 2111 ( 代 ) http: 〃 www. Oki. CO. jp/ 東芝灯ソリューション株式会社 カスタマサポート & サポート事業部ソリューションサポート部 TEL : 044 - 548 - 3297 http://www.open-i . ne . jp/

8. UNIX MAGAZINE 2002年2月号

特集ネットワークの基礎知識 0 図 40 sasldblistusers の出力 ( 2 ) # /usr/local/sbin/sasldblistusers user : yutaka—n realm : a21p-freebsd user : yutaka—n realm : a21p-freebsd user: yutaka—n realm: a21p-freebsd 便用可有接統 第ンう一ットアカウ ) ト アカウント すべてメ”ルにユーディレりトリサービ対 図 41 メールサーパーの尺 mech : me Ch : me Ch : プロバティ ( 日 ) 削除 ( 日 ) PLA I N CRAM-MD5 DIGEST-MD5 既定に設 0 ) インホート Q.„ 工りスポート 0 、 開じる 1. メニューの、、ツール " から、、アカウント " お尺します にします。 254.2 、 SASL アカウントが yutaka-n であることを前提 示す例では SMTP サーバーの IP アドレスが 192.168. いる Outlook Express を例に説明します。なお、以下に すが、以下では Windows に標準でインストールされて 次は、 MUA 側の設定です。数多くの MUA がありま dblistusers コマンドて不忍できます ( 図 40 ) 。 ( 図 41 ) 。 図 42 プロ / くティ 1 9216 日 2542 のプロバティ を 全般サーバーー接統一セキ 1 リテ詳細設定 IIMAP ー サーバー情報 受信メールサー / トの種砂 . 節ーー、 - 、一 「セキュリティで保護されたパスワード認証でロりオンする ) にバスワードを保存する ( yutaka—n 受信メールサト 送信メール (SMTPXU). 192.168.254.2 送イ言メールサーバー マにのザこバ認 ! 必要 設定 ( 印 . 2. [ プロバティ ] ボタンを押し、 す ( 図 42 ) 。 、、サーバー " を尺しま 3. 、、送信メール (SMTP)" を 192.168.254.2 として、 、、このサーバーは認証が必要 " をチェックします。続い て [ 設定 ] ボタンをクリックし、言田設疋をおこないま す ( 図 43 ) 。 4. 図 43 で、アカウントとパスワードを設定すれは、送信 に関する設定は終りです。 こまで、電子メールを扱う環竟を構成するいくつかの 基礎的なシステムの設定ガ去などについて説明してきまし た。紹介したことを振り返りながら、現在のメールシステ ムの構造を考えてみましよう。 たとえは、私のメールアドレスが yutaka-n@yutaka. jp であるとします。ドメイン yutaka. JP のメール酉当逶を 司るメールサーバーを、そのドメインの MX (Mail eX- メールポックスの考え方 120 ーーキやンセルー適用 送信メールサーバ , ー マバスワードを保存する⑩ ノ以ワード ( 2 : 司 奩次のアカウントとバスり一ドでログオンする ( 0 ) 受イ言メールサーバーと同じ設定を使用する@ ロりオン情報 図 43 アカウントとパスワードの入力 一三 2 芝」 「セキュリティで保護されたバスワード認証でロりオンする UNIX MAGAZINE 2002.2 アクセスを許可される形態で管理がおこなわれています。 バーにしても、認証機構を用いて正当なユーサーのみが sendmail などの MTA にしても、 POP/IMAP サー 成されているかもしれません。 構成するために、複数のシステムからメールサーバーか構 によっては、 MTA と POP/IMAP サーバーを分離して にメールポックスが用意されることになるでしよう。場合 きます。もちろん、このメールサーバーにはユーザーごと バーには、ドメイン yutaka ・ jp 宛のメールが酉当医されて す ) 。さて、この MX レコードに登録されたメールサー こまでの例では a21p-freebsd. yutaka. jp となっていま に対する MX を、、 MX レコード " として登録しますに change) と呼びます。 DNS では、ドメイン yutaka ・ jp

9. UNIX MAGAZINE 2002年2月号

これは、前回紹介した select システムコールで使って いた fd-set 型とよく似ています。さらに、 sys/signalvar ・ h ファイルでは、以下のような sigset-t 型の値を操作す るためのマクロか定義されています。 SIGADDSET(&sigset-t, int) : sigset-t に int で 表現するシグナルを追加する。 SIGDELSET(&sigset-t, int) :sigset-t から int で 表現するシグナルを削除する。 SIGEMPTYSET(&sigset-t) :sigset-t のすべてを クリアする。 SIGFILLSET(&sigset-t) : sigset-t のすべてをセッ トする。 SIGISMEMBER(&sigset-t, int) :sigset-t に int で表現するシグナルか含まれるかどうか検査する。 ほかにも多くの処理が定義されているので、興未のある 方はファイルを茁妾参照してください。 シグナルハンドラか呼び出される場合、呼び出される前 のシグナルマスクに加え、シグナルハンドラを起動する原 因となったシグナルをマスクします。さらに、シグナルハ ンドラ登剥に指定された sa-mask フィールドの値も、 論理和をとったものカ噺たなシグナルマスクとして設定さ れます。さきはど sa-flags の説明で、 SA-NODEFER を指定するとシグナルの処理中に同じシグナルカ舸度発生 しても無視しないと書きました。これは、シグナルハンド ラを起動する原因となったシグナルを新たなマスクに追加 しないことを意味します。 シグナルハンドラを登録するためのシステムコールとし ては、今回紹介した sigaction のはかに sigvec もありま す。ただしこれは旧いインターフェイスで、 BSD 形式の シグナルハンドラのみを処理するためのシステムコールで す。 sigaction を使えば BSD 形式のシグナルハンドラも 利用できるため、 sigvec ジステムコールを使う必要はあり ません。過去のコードとの互換性のために残されていると 考えればよいでしよう。 signal 関数 sigaction システムコールを利用したシグナルハンドラ ーーー一一一一一一一一一のを隶は : ーーー新たな構造体のために領域を確保する必要があ UNIX MAGAZINE 2002.2 プログラミング・テクニック . るなど、なにかと面倒です。そこで、もっと簡単なイン ターフェイスをもち、容易にシグナノレ、ンドラを登録でき る関数として signal か提供されています。この関数は、 以下のような形式で利用します。 signal(sig, handler) 第 1 引数の sig には、ハンドラを設定したいシグナル を記号定数を使って指定します。第 2 引数にはハンドラ を指定します。具イ勺には、 void handler (int) ; というプロトタイプのハンドラを指定します。 signal 関数の戻り値は、この関数を呼び出す前に登録さ れていたシグナルハンドラです。したがって、ここで返さ れた値を使って signal 関数を呼び出せば、シグナルハン ドラをもとに戻すことができます。 signal 関数の呼出しに 失敗すると、特別な値として SIG-ERR カ亟され、 errno 変数にその理由かオ褓内されます。 signal 関数のプロトタイプはかなり複雑なものとなっ ています。 void ( * signal(int , void (*func) (int) ) ) (int) これを一見しただけでその型が分かるのはかなり慣れた 人だけでしよう。ますは次の部分に注目します。 signal(int, void (*func) (int) ) この部分から、 signal 関数は引数を 2 っとり、 1 つ目 は int 、 2 つ目はⅲ t を引数とする戻り値が v 。 id の関数 であることが分かります。これが分かれば、あとは signal 関数の戻り値です。 signal 関数の呼出し本を func2 で 置き換えると、次のようになります。 void (*func2) (int) これなら簡単でしよう。 func2 は int を引数とする戻 り値が void の関数です。つまり、これが signal 関数の 戻り値になります。 このように複雑になったのは、 signal 関数を基本的な 型だけで表現しようとしたためです。これは、型宣言を利 用すればごく簡単に表現できます。事実、 FreeBSD でも 型宣言を利用した簡単な記法がイつれています。 typedef void ——sighandler—t (int) ; -sighandler-t *signal (int , —sighandler—t * ) ; 71

10. UNIX MAGAZINE 2002年2月号

連載 UNIX Communication Notes—O システムを言 t する場合には、それを構成する要素ク寺 性を十分に考える必要がある。システムの言 1 者は、これ らの点し頁に置くべきであろう。 時間的余裕の確保 どんな用途であれ、エンジニアが即座に手を動かさな くても障害をうまく回避できる ( または障害から復旧でき る ) 構造になっていれば、手間のかからないシステムとい えるだろう。多重化によって信頼性を確保するシステム も、エンジニアか即座に対応しなくてもなんとかなるとい う意味で手間いらすのシステムである。 何も対策を施していないシステムの場合には、サーピス を提供しているか、いないかの 2 つの状態しかない。 方、多重化したシステムであ川ま、 ・サービスを提供している状態 ・システムの一には故障しているが、代替システムによっ てサーピスを提供している状態 ・システムか完全にダウンしている状態 というように、障害が発生したときに対応するまでの日判 的余裕カ蔀呆できる。これは、サーバーの多重化だけでは なく、 RAID 技術を用いたディスクシステムの多重イ電 源ュニットの多重化などの場合も同様である。このよう な、障害発生時に時憫的余裕を得るための手法は存分に活 用すべきである。 ただし、バックアップ・システムを用意したというだ けでは、場合によってはかなり面倒な状況になることがあ る。この連載でも紹介したように、システムを構築する際 の障害対策として、、バックアッフ。用に代替システムを準 備し、障害が発生したらそのシステムを使って運用状態を 継続する " という考え方がある。このガ去の利点は、嵂章 したシステムのパーツやシステム本を交換する時間を短 縮できるところにある。 ただしそれは代替システムがきちんと整備されていれ は、という舸寸きの話である。さもないと、障害が発生 したときにバックアップ機への切替えに膨大な手間がか かってしまう。当然だが、バックアッフ用のシステムは、 日常的に運用されているわけではない。そのため、とかく 保芍着理がおろそかにさオ功ゞちで、いざ使おうとしたとき こハックアッフ饑自体に障害があった、などということも UNIX MAGAZINE 2002.2 ある。自動車でも、パンクしたときにスペアタイヤと交換 しようとしたら、空気力皺けていて使いものにならなかっ たという話をよく聞く。これは、コンピュータ・システム でも同様である。 朋大では、サーバーシステムについてはクラスタ化をお こない、バックアッフ饑として用意した要素サーバーもシ ステムに組み入れて運用するのが一番理にかなっている。 バックアッフ。機を切り離しておくにしても、運用中のシス テムと定期的に入れ替えることで、障害を回避するような 工夫が必要だろう。 ☆ 今回は、出張で訪れた種子島宇宙センターにおける信頼 性 1- E への耳鯀目みから学んだこと、そして、サーバーシス テムにおける管理の手間をいかに軽減するかについて述べ 高性能サーバーの構築については、新たな技術を研究す るせ也がまだまだあり、運用技術に関する手法の蓄積も必 要である。ネットワーク環竟は、今後も業界や業種の壁を 越えてよりいっそう加速されるであろう。このため、各種 のサーバーを構築する場合には、、、性能の高さ " を重視し たシステムの実現力球められる機会か増えると思われる。 とくに基幹業務に使われるシステムは、高い性能か得られ る橢友にするのが当然視され始めている。 4 回にわたり、高生能サーバーを構築するための技術や 手法について述べてきた。しかし、この領域はまた、発全 上であり、・麦も新たな技術やガ侖が考案、開発される のは間違いないだろう。このシリーズて紹介したのは、あ くまでも現時点でのスナップショットと考えていただき ( やまぐち・すぐる奈良先翊蝌オ支彳大完大学 ) 、一 0 57