前のページ 次のページ 目次

5. NIS の設定には何が必要か

5.1 マスターサーバ、スレーブサーバ、クライアントを決める

まず以下の二つの場合を考える必要があります。

  1. 接続するネットワーク上に NIS サーバがある場合。
  2. 接続するネットワーク上に NIS サーバがない場合。

最初のケースでは ypbind、 ypwhich、 ypcat、 yppoll、 ypmatch といっ たクライアントプログラムを起動するだけで使えるようになります。一番重 要なのは ypbind で、このプログラムは常時に実行されている必要があり ます(つまり ps コマンドを実行したときにプロセステーブルに表示されな ければなりません)。 ypbind はいわゆるデーモンプロセスというもので、 /etc/rc.d/rc.local のようなシステムのスタートアップファイルか ら起動する必要があります。 ypbind が起動されれば、その計算機は その時点から NIS クライアントとなります。

二番目のケース、つまり NIS サーバがない場合には、NIS サーバプログラム (通常は ypserv)も必要となります。この文書の NIS サーバの設定の章では、 Linux マシンを NIS サーバに設定する方法について説明しています。ここでは Peter Eriksson と Thorsten Kukuk による ypserv の実装を用いています。 この実装の 0.14 以降の版では NIS の動作原理 の節で触れたマスター/スレーブ機能をサポートしています。

他にもフリーな NIS サーバがあります。 yps というプログラムで、ド イツの Tobias Reber によって書かれたものです。マスター/スレーブ機能を 備えていますが、それ以外の点に制限があります。

5.2 ソフトウェア

システムライブラリ /usr/lib/libc.a (バージョン 4.4.2 以上)、 もしくはシェアードライブラリ /usr/lib/libc.sa と同バージョン の DLL には、 NIS のクライアントやサーバのプログラムをコンパイルするの に必要なシステムコールがすべて含まれています。 glibc 2.x 用には /lib/libnsl.so.1 も必要です。

NIS は /usr/lib/libc.a バージョン 4.5.21 以上でしか動かないと いう報告がありますので、安全のためには古いものは使わない方が良いでしょ う。 NIS のクライアントプログラムは以下の場所で入手できます。

ソフトを手に入れたら、一緒に付いてくる説明にしたがって下さい。 yp-clients 2.2 は libc4 または 5.4.20 までの libc と共に用いて下さい。 libc 5.4.21 以降と glibc 2.x には yp-tools 1.2 が必要です。 ypbind 3.3 はすべてのライブラリで動作します。 yp-clients 2.2 に入っている ypbind は決して使わないようにして下さい。

5.3 ypbind デーモン

ソフトはうまくコンパイルされ、インストールの準備ができたとしましょう。 ypbind デーモンは /usr/sbin に入れると良いでしょう。 NYS のシステムで は ypbind は必要ないと言う人がいるかもしれませんが、これは間違いです。 ypwhichypcat には ypbind が必要です。

ypbind のインストールはもちろんスーパーユーザで行う必要があります。他 のバイナリ(ypwhich, ypcat, yppoll, ypmatch)はすべてのユーザーからア クセス可能なディレクトリにおきましょう。通常は /usr/bin が良 いでしょう。

ypbind には設定ファイルがあります。 /etc/yp.conf です。ここに NIS サーバを直に書いておくこともできます。詳しくは ypbind(8) のマニュ アルを読んで下さい。このファイルは NYS でも必要です。以下は例です。

ypserver voyager
ypserver ds9

NIS なしでもホスト名の解決ができるシステムでは、 IP アドレスでなく名前 を用いることができます。そうでなければ IP アドレスを用います。

ypbind/etc/rc.d/ のファイルに入れる前にテストしてお くことをお勧めします。 ypbind のテストは以下のようにして行います。

ここまで来れば ypcat のような NIS クライアントプログラムを実行す ることができるはずです。 例えば NIS のパスワードデータベースを参照した い場合には、 "ypcat passwd" とします。

重要: もし上述の ypbind のテストを飛ばした場合、少なくともドメイ ンネームが設定してあることと /var/yp という名前のディレクトリ が作ってあることを確認して下さい。 /var/yp がないと ypbind は正常に起動されません。

テストがうまくいったら /etc/rc.d にあるファイルを変更して、ブー ト時に ypbind が起動されるようにしておくと良いでしょう。自動的に NIS クラ イアントとしての活動が開始されます。ドメインネームがブート時に設定され るようにするのを忘れないこと。

以上で設定は終了しました。リブートしてから、ブートメッセージで ypbind が正常に動作しているかどうか確認して下さい。

5.4 trad-NIS を用いた NIS クライアントをセットアップする

ホストの名前解決に NIS を用いるには、 /etc/host.conf ファイル で解決順を指定するラインに "nis" を指定(または追加) して下さい。 詳細に付いては resolv+(8) のマニュアルを読んで下さい。

以下の行を NIS クライアントの /etc/passwd に追加して下さい。

+::::::

また +- といった文字を使うことで、ユーザーを追加/削除したり、状態 を変更したりすることができます。例えばユーザ guest を削除したいな ら /etc/passwd ファイルに -guest を追加すれば OK です。 ユーザ "linux" に違ったシェル(例えば ksh)を使わせた いですって?大丈夫、 "+linux::::::bin/ksh"/ を /etc/passwd に追加するだけです(引用符は取って下さい)。変更 したくないフィールドは空のままにしておく必要があります。 ユーザのコントロールにはネットグループを用いることもできます。

例えば「ログインアクセスを miquiels、 dth、 ed とネットグループ sysadmin のメンバーだけに限りたいが、アカウントデータは他のユーザ全員分が必要」 というような場合は以下のようになります。

+miquels:::::::
+ed:::::::
+dth:::::::
+@sysadmins:::::::
-ftp
+:*::::::/etc/NoShell

Linux ではパスワードのフィールドも上書きできることに注意して下さい。や り方は今の例と全く同じです。この例では "ftp" のログインも 削除しています。従ってこのユーザは存在せず、 anonymous ftp は機能しな くなります。

/etc/netgroup ファイルは以下のようになっていると思います。

sysadmins (-,software,) (-,kukuk,)

重要:ネットグループの機能は libc 4.5.26 以降で実装されました。 4.5.26 以前の libc を使っている場合には、 NIS のパスワードデータベースにエン トリを持つすべてのユーザは、ypbind が実行された Linux マシンにア クセスできてしまいます。

5.5 NYS を用いた NIS クライアントをセットアップする

必要なのは NIS の設定ファイル(/etc/yp.conf)で正しいサーバ(群)から 情報をもらえるようにしておくこと、そしてネームサービススイッチの設定ファ イル(/etc/nsswitch.conf)を正しく設定することです。

ypbind もインストールしておきましょう。 libc には必要ありませんが、 NIS(YP) tools では ypbind が必要になります。

ユーザの追加・排除機能(+/-guest/+@admins)を用いたい場合は、 "passwd: compat" と "group: compat" を用いる必 要があります。 "shadow: compat" という指定はありませ ん。この場合は "shadow: files nis" のようにして下さい。

5.6 glibc 2.x を用いた NIS クライアントをセットアップする

glibc は trad-NIS を利用します。従って ypbind を起動する必要があります。 またネームサービススイッチの設定ファイル(/etc/nsswitch.conf) も正しく 設定する必要があります。 passwd、 shadow または group に compat モード を使う場合は、これらのファイルの最後に "+" を追加する必要 があります。またユーザの追加・削除機能を用いることもできます。設定は Solaris 2.x のものとまったく同じです。

5.7 nsswitch.conf ファイル

ネットワークサービススイッチのファイル /etc/nsswitch.conf は 情報へのア クセス要求が来たときに行う検索の順番を決定するものです。ホスト名の検索 で用いられる /etc/host.conf ファイルと似ています。例えばこの ファイルにおいて

hosts: files nis dns

と指定すれば、ホスト名の検索機能はまずローカルの /etc/hosts ファイルを 探し、次に NIS、そしてドメインネームサービス(/etc/resolv.confnamed)という順番で検索を行います。最後までマッチするものがなければ、 エラーが返されることになります。

NIS 用の /etc/nsswitch.conf ファイルとしては、以下のようなものが良いで しょう。


#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry.
#
# Legal entries are:
#
#       nisplus                 Use NIS+ (NIS version 3)
#       nis                     Use NIS (NIS version 2), also called YP
#       dns                     Use DNS (Domain Name Service)
#       files                   Use the local files
#       db                      Use the /var/db databases
#       [NOTFOUND=return]       Stop searching if not found so far
#

passwd:     compat
group:      compat
shadow:     compat

passwd_compat: nis
group_compat: nis
shadow_compat: nis

hosts:      nis files dns

services:   nis [NOTFOUND=return] files
networks:   nis [NOTFOUND=return] files
protocols:  nis [NOTFOUND=return] files
rpc:        nis [NOTFOUND=return] files
ethers:     nis [NOTFOUND=return] files
netmasks:   nis [NOTFOUND=return] files
netgroup:   nis
bootparams: nis [NOTFOUND=return] files
publickey:  nis [NOTFOUND=return] files
automount:  files
aliases:    nis [NOTFOUND=return] files

passwd_compat、 group_compat、 shadow_compat は glibc 2.x でのみサポー トされています。 shadow に関するルールが /etc/nsswitch.conf にない場合 は、 glibc は passwd の探索ルールを用います。glibc には hesoid といっ たような、多少多くの探索モジュールが存在します。詳しくは glibc のドキュ メントを読んで下さい。


前のページ 次のページ 目次