1. 概要
NIS (Network Information Service) はネットワーク上の複数の計算機で共有すべき情報を 一元管理するためのUNIXにおける標準的な手法である. 様々な情報の管理が行えるが,多くは,ユーザやホスト情報の管理に用いられる.
NIS サーバでは ypserv というデーモンプログラムと yppasswdd が実行されている. yppasswdd はクライアントで実行された yppasswd コマンドの要求に従って,サーバ側のパスワードを変更するデーモンプログ ラムである.
NIS のクライアントでは ypbind というデーモンプログラムを実行 する.
最初の起動時に ypbind がサーバを探すには大きく二つの方法がある. 一つはブロードキャストを用いる方法で,この場合には ypbind に はサーバの名前を明示的に指定しない. もう一つの方法はサーバ名を ypbind のオプションを用いて明示的 に指定する方法である. サーバを明示的に指定する場合,クライアントでは以下のような設定を行なう.
- ドメイン名の設定
- ホストファイルの設定
- パスワードファイルの設定
- グループファイルの設定
- ypbind の設定
- その他の設定
2. ドメイン名の設定
ドメイン名の設定には domainname コマンドを用いる. 例えば NIS のドメイン名が doineau.cla.kobe-u.ac.jp の場合は 以下のように実行する.
% domainname doineau.cla.kobe-u.ac.jp
実際には,このコマンドは rc ファイル内で実行されており,ドメ イン名の設定は,他のネットワークの設定と同様に外部の設定ファイルを用 いる. RedHat系OSの場合は/etc/sysconfig/networkのNISDOMAINに記述され る. 一部の OS では /etc/defaultdomain という単独のファイルにドメ イン名を記述する場合もあるので注意する.
3. ホストファイルの設定
基本的に,NIS クライアントはホストの情報を NIS サーバから取得するので, ホストファイル /etc/hosts には自分自身の設定のみを以下のように記述する.
127.0.0.1 localhost 133.30.244.XXX myhostname
4. パスワードファイルの設定
パスワードの情報も NIS サーバから取得するので,個々の記述は行なわない. しかし,NIS サーバからパスワード情報を取得するということを明示する必要 がある. これには + エントリを用いる. + 記号で始まるエントリは,該当するユーザ情報を NIS サーバから 取得することを示す. 例えば以下のようなエントリがあった場合,NIS のユーザ foo の 情報が該当行に挿入されると考えると良い.
+foo::::::
ユーザ名を指定しない,以下のような場合には,NIS で提供される全てのユー ザ情報を挿入することを表している.
+::::::
FreeBSD の場合には master.passwd に手を加えるので,: (コロン)の数が異なることに注意すること. いずれの場合も vipw コマンドを用いてパスワードファイルを書き換 える.
5. グループファイルの設定
グループファイルにもパスワードファイルと同様に + エントリを設 けて,NIS のデータベースから情報をインポートすることを明示する必要があ る. 具体的には,/etc/group ファイルの最後に,以下のように+ のみの行があれば良い.
+:
OS によっては,スクリプトを使って NIS の設定をしただけでこれを追加して くれるものもあるのであまり気にしなくても良いが,一応確認しておこう.
6. ypbind の設定
FreeBSD では ypbind のオプションとしてドメイン名 と NIS サーバ名を指定できる. これを用いることによりセグメントを跨がった NIS を張ることができる. このためには-Sオプションを用いて以下のようにypbindを 起動する.
% ypbind -S doineau.cla.kobe-u.ac.jp,nis.cla.kobe-u.ac.jp
また,同時に -s オプションを付けることにより,特定のポートへの 接続のみを許可する事ができ,安全性が向上する. 実際にこれらの設定は FreeBSD ならば /etc/rc.conf に記述する. 変更には /stand/sysinstall コマンドを用いる.
Red Hat Linux では,/etc/yp.conf というファイルにドメイン名と サーバ名を以下のように記述する.
domain doineau.cla.kobe-u.ac.jp server nis.cla.kobe-u.ac.jp
ただし,NISサーバ名を指定する場合には,/etc/hostsにそのサーバ名に対するIPアドレス が定義されているか,DNSでそのサーバ名に対するIPアドレスが引けることが必要であるので,その 設定を先に行うこと.
一般的には,サーバは検索され,プライマリサーバかセカンダリサーバのいずれかが自動的に 選択されるので,特にサーバを指定しなくても良かったが,ネットワーク内に異なる部署の 計算機が存在する場合には,その計算機への問い合わせをなくすためにもサーバを指定して ypbindを起動するほうが良い.
6. その他の設定
OS によっては,DNS の設定と同様に,ユーザおよびホストの情報を NIS の データベースからも検索することを明示的に指定する必要がある. FreeBSD では /etc/host.conf に, RedHat Linux では /etc/nsswitch.conf に記述する.
例えば,RedHat Linux では,/etc/nsswitch.conf の passwd およびgroup,hosts の行が以下のようになっていなければパスワー ドなどのNISへの問い合わせを行わないので注意しよう.
passwd: files nisplus nis group: files nisplus nis hosts: files nisplus nis dns
7. 設定の確認
NIS の設定は,まず domainname コマンドでドメイン名が正しく設定さ れているか,次に ypwhich コマンドで NIS のサーバが正しく設定され ているかが確認できる. これらの結果が以下のようになっていれば良い.
% domainname doineau.cla.kobe-u.ac.jp % ypwhich nis.cla.kobe-u.ac.jp
また,正しくデータベースが引けているかどうかは ypcat コマンドで 確認をする. 例えば,ホスト情報を確認するには以下のようにコマンドを実行する.
% ypcat hosts