タイトルBrowsing Mac OS X》NetInfoでアカウントを一元管理(1)カテゴリーユーザ管理, Mac OS X Server, Browsing Mac OS X
作成日2002/2/27 14:27:25作成者新居雅行
   この記事のPDFファイル(1529KB)は以下のアドレスにあります。
   ダウンロードには、MDOnlineのアカウントが必要です。
   pdfs/MDOnline020014.pdf
 ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥
Mac OS Xでは個々のマシンにそのアカウントを登録するが、Mac OS X Serverを使えば、アカウント情報をサーバ上に一元化できる。また、ホームディレクトリにはサーバ上の公開フォルダを利用できることから、どのパソコンからログインしても、文書ファイルや初期設定としてはネットワーク上の同じディレクトリを使うことができ、どのマシンでもつまりは同じ作業環境になるということも実現できる。その方法とポイントになるところを解説しよう。

――――ユーザ認証とNetInfo
Mac OS Xには、NetInfoというディレクトリサービスが組み込まれている。組み込まれているというか、OSの一部であると言って良いだろう。Mac OS XのもとになったOPENSTEPあるいはNeXTSTEPから使われているディレクトリサービスであるが、システムのさまざまな機能がNetInfoをベースにして稼働することもあって、あえてMac OS Xでは排除はしなかったようだ。ディレクトリサービスは、要はさまざまな情報を管理するのであるが、非常に大きな仕事が「アカウントの管理」という作業である。もちろん、セキュリティに配慮された環境で、アカウントとそのパスワードを記録し、認証等で利用できるようになっている。ただ、Mac OS Xの場合NetInfoが重要だとは言え、すべての設定がNetInfoでなされているわけではない。NetInfoが使われている場合もあれば、NetInfoが使われていない場合もある。意外にいろいろな設定はNetInfoのディレクトリに収められているものの、逆に思いのほか利用されていないものもある。単に何らかのデータを記憶するならファイルでもかまわないわけだが、ディレクトリサービスを利用する理由は、ネットワークでさまざまな情報を共有管理するというのが1つの大きな目的だ。さらに、そのときに階層化をはじめとして柔軟なディレクトリを構成するといった機能が要求されるのである。なお、ディレクトリサービスのための代表的なプロトコルがLDAPであり、WindowsのディレクトリサービスであるActive DirectoryはLDAPにも対応している。LDAPをサポートした製品はけっこうたくさんあり、たとえば、認証情報を複数のサーバで一元化できるといったメリットを示して販売もされている。また、オープンソースでのLDAPサーバもある。なお、Mac OS XではLDAPでの認証にも対応しているのであるが、今回はNetInfoだけを使った方法を紹介しよう。NetInfoはLDAPとの互換性はなく独自のプロトコルである。
Mac OS Xを普通に使う上では、実はNetInfoについてはそれほど意識する必要はない。言い換えれば、なるべく一般のユーザの目には触れないようにことごとく隠している。もちろん、システムの深部の話になるので、それはそれでいいのであるが、ネットワークを少し複雑に処理しようとした場合には、どうしてもNetInfoの処理が必要となってしまうのである。ここでは、通常とおりにインストールしたところからの話をはじめよう。
まず、Mac OS Xをインストールすると、そのマシンで単独でNetInfoが稼働しており、そのマシンにだけにサービスを提供するローカルなディレクトリサービスが稼働している。サーバ機能に相当するデーモンなどが稼働しているのであるが、まずはイメージとして、Mac OS Xにはディレクトリサービスが必ず動いている。このディレクトリサービスには、マシンを動かすための諸設定が記録される。そして、インストーラでインストールしたユーザとそのパスワードも、NetInfoのディレクトリに記録されるのである。また、システム環境設定の「ユーザ」で登録したユーザも、やはりNetInfoに記録される。一般的なUNIXでは/etc/passwdファイルに記録…というのがあるが(もはやそれすら一般的と言えないと言う話もあるけど…)、Mac OS Xではそうした記録はできない。唯一、そのマシンのNetInfoにユーザ情報が記録され、ログイン時にそのNetInfoのディレクトリから情報を読み取って認証を行う。

◇個々のマシンで認証を行った場合
 

ここで、Mac OS X Serverで稼働しているApple File Service(AppleShareサーバ)に接続して、共有フォルダをマウントしてファイル共有をしたいとする。そのときにいちばん手軽な方法は、Mac OS X Server側のローカルなNetInfoのディレクトリにユーザ登録を行う。つまり、サーバ側のマシン自体の情報やアカウントを記録しているNetInfoに登録を行うのである。一般には、Mac OS X ServerではServer Adminアプリケーションを使って登録を行う。サーバが、Mac OS Xならやはりシステム環境設定の「ユーザ」を使って行う。いずれにしても、前の図のように、サーバにアクセスするときのユーザ名とアカウントをサーバに登録する。だから、クライアントとサーバで共通のユーザ名とパスワードである必要もない。クライアントへのログオンと、サーバへのログインとは別々のものと認識される。
こうした共有の状況をさらに進化させることができる。クライアントのログインの認証を、そのマシンではなく、他のマシンで稼働しているディレクトリを通じて行うようにすることで、クライアントとのログイン、さらにはサーバのログインのいずれにも、共通のアカウントとパスワードを使うことができる。つまり、マシン個々に行うユーザ管理は必要がなくなるというわけだ。ユーザ管理はサーバで一元化できる。

◇ユーザ管理を一元化させた場合
 

このとき、ユーザが利用するホームフォルダをネットワーク上に確保しておけば、たとえばLAN内にある10台のMacintoshのどれを使っても、同じ名前でログインすれば、いつでも、ホームフォルダのDocumentsの中身は同じものを利用できるという具合になる。また、初期設定フォルダなども、マシンとは独立してサーバで一元化されているため、どのマシンを使ってもいつも同じデスクトップ画像を出すということもできる。NetInfoを使ったMac OS Xではこうした使い方まで想定しているのである。
ここで、最初の状態ではNetInfoのディレクトリは、マシンごとに用意されたものを使っているが、アカウント情報などの一元化を図るために、共通に使えるディレクトリを別途確保するというのが、NetInfoの基本的な設計となっている。前の図のように、サーバマシン上で、共通に使えるディレクトリを新たに用意し、クライアントはもちろん、サーバもそのディレクトリを使うようにする。そうした各マシンから共通に使うディレクトリは、ある意味ではクライアント/サーバ式の処理でもあるのだが、NetInfoはこうしたディレクトリ階層を2階層ではなく多階層構成することまでもできる。したがって、サーバよりも「上位」「親」といった言い方をするのが適切なようだ。親のディレクトリを作成して運用する機能は、Mac OS X Serverしか用意されていないので、こうした使い方をするには、Mac OS X Severは必須となるだろう。以下、一元化したNetInfoのディレクトリでのログインに必要な操作を説明しよう。
その前に、稼働させた環境をまとめておく。ちょっとイレギュラーな環境であるが、その点は自宅ということでお許し頂きたい。

サーバ:Mac OS X Server 10.1.3
(Power Macintosh G3/300MHz/256MB/6G+15GB RAID)
Ethernetポート1:YahooBBに接続(DHCP接続)
 実験時のIPアドレス:43.238.194.28
 実験時のドメイン名:yahoobb238194028.bbtec.net
Ethernetポート2:内部ネットワークに接続(DHCPサーバ、DNSなど)
 IPアドレス:192.168.1.1
 ドメイン名:msyk.dyndns.org、right.msyk.dyndns.org(内部のみ有効)
 Appleファイルサービスサーバ名:right

クライアント:Mac OS X 10.1.3(PowerBook G4/500MHz/512MB/20GB)
 IPアドレス:192.168.1.101(DHCPにより配給)

‥‥‥‥‥‥‥この項、続く‥‥‥‥‥‥‥[新居雅行]‥‥‥‥‥‥‥
関連リンク