Murao Lab.
Graduate School of Intercultural Studies, Kobe University

NIS の設定

1. 概要

NIS (Network Information Service) はネットワーク上の複数の計算機で共有すべき情報を 一元管理するためのUNIXにおける標準的な手法である. 様々な情報の管理が行えるが,多くは,ユーザやホスト情報の管理に用いられる.

NIS サーバでは ypserv というデーモンプログラムと yppasswdd が実行されている. yppasswdd はクライアントで実行された yppasswd コマンドの要求に従って,サーバ側のパスワードを変更するデーモンプログ ラムである.

NIS のクライアントでは 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/networkNISDOMAINに記述され る. 一部の 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.confpasswd およびgrouphosts の行が以下のようになっていなければパスワー ドなどの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
This page is administrated by