自宅サーバー構築メモ The last update of this page 2007/07/19
NISとは
NIS (Network Information Service) は、ネットワーク上のすべてのマシンに、ネットワーク情報 (ログイン名、パスワード、ホームディレクトリ、グループ情報)を提供するシステムです。
マシンが NIS クライアントプログラムを実行しており、ユーザーのパスワードが NIS passwd データベースに記録されている限り、そのユーザーはネットワーク上の任意のマシンにログインできます。
NIS は、以前 Sun Yellow Pages (YP). と呼ばれていました。
インストール
yumにてパッケージをインストール
yum install nis
NISサーバー/NISクライアント共通の設定
PortMapperの起動
/etc/init.d/portmap start
NISを使用するには、事前にPortMapperを起動しておく必要があります。

NISドメインを設定
domainname hosso_nis
NISサービスを使用する上で必要になるのが、「NISドメイン」という概念です。
NISドメインとは、NISサービスを提供するサーバーとNISサービスを利用するクライアントが集まった論理的なグループを指します。
インターネットにおけるDNSのドメインとはまったくの別物なので注意してください。
感覚的には、WindowsNT(Windows2000)のドメインに似ています。
NISサーバー、NISクライアントともに、自分はどのNISドメインに属しているのかを明示しなければなりません。

/etc/sysconfig/networkを編集
vi /etc/sysconfig/network
【設定内容】
NISDOMAIN=hosso_nis
NISサーバーの設定
TCP Wrapperの設定
vi /etc/hosts.allow
NISに関連するデーモン(portmap、ypserv、rpc.yppasswdd)は、TCP Wrapperによるアクセス制御が行われます。よって、NISサーバーへのアクセスを許可するホストを指定する必要があります。
【設定内容】
ネットワークアドレスが192.168.1.0、ネットマスクが255.255.255.0のTCP/IPネットワーク上にあるクライアントすべてにNISサービスを許可する場合
portmap : 192.168.1.0/255.255.255.0
ypserv : 192.168.1.0/255.255.255.0
rpc.yppasswdd : 192.168.1.0/255.255.255.0

/var/yp/securenetsファイルの設定
vi /var/yp/securenets
securenetsファイルは、NISが利用できるネットワーク範囲をネットマスクとネットワークアドレスの組合せで指定します。
【設定内容】
プライベートなネットワークである“192.168.0.0/24”に対してNISを有効にする場合
255.0.0.0 127.0.0.0
0.0.0.0 0.0.0.0
↓に変更
255.0.0.0 127.0.0.1
255.255.255.0 192.168.0.0

/var/yp/Makefileファイルの設定
vi /var/yp/Makefile
Makefileファイルは、NISサーバーがアカウント情報などを格納するNISデータベースを作成するための設定を行います。そのため、NISサービスで管理しない情報がある場合は、このファイルを編集します。
【設定内容】
all: passwd group hosts shadow # rpc services netid protocols mail shadow
# publickey networks ethers bootparams printcap
# netgrp amd.home auto.master auto.home auto.local passwd.adjunct
# timezone locale netmasks

NISデータベースの初期化
/usr/lib/yp/ypinit -m
これで、/var/yp/ディレクトリ以下に指定したNISドメイン名のディレクトリ(この例では、nis_turbolinux)が作成され、データベースファイルが格納されます。なお、Turbolinux 8 Serverの初期設定ではユーザーIDが500未満のユーザーはデータベースファイルへ登録されません。つまり、一般ユーザーのみNISの対象となります。 なお、スレーブサーバーを構築するときは、“/usr/lib/yp/ypinit -s <マスタサーバー名>”と実行します。マスタサーバーは起動しておく必要があります。
【設定内容】
At this point, we have to construct a list of the hosts which will run NIS
servers. nis.turbolinux.gr.jp is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a &control D>.
next host to add: nis.turbolinux.gr.jp
next host to add:
自ホスト名が表示され、NISサーバーとして追加されす。スレーブサーバーなど、ほかにNISサーバーがある場合はそのホスト名を入力します。入力が終わったら[Ctrl]+[D]キーを押します。
The current list of NIS servers looks like this:
nis.turbolinux.gr.jp
Is this correct? [y/n: y]
追加したサーバー名が表示され、確認を促されます。問題がなければ、「y」と入力して[Enter]キーを押します。
We need some minutes to build the databases...
Building /var/yp/nis_turbolinux/ypservers...
Running /var/yp/Makefile...
make[1]: ここに入ります: ディレクトリ `/var/yp/nis_turbolinux'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
make[1]: ここから出ます: ディレクトリ `/var/yp/nis_turbolinux'

NISサーバーの起動
/etc/init.d/ypserv start
/etc/init.d/yppasswdd start
NISのサービスを開始するには、ypservとrpc.yppasswddの2つのデーモンを起動する必要があります。ypservは、NISサーバーの実体です。rpc.yppasswddは、NISクライアントからのパスワード変更などをNISデータベースに反映するためのデーモンです。

chkconfigコマンドの実行
chkconfig ypserv on
chkconfig yppasswd on
NISクライアントの設定
/etc/nsswitch.confの設定
vi /var/yp/Makefile
/etc/nsswitch.confは、名前解決手段の優先順位を決定するための設定ファイルで、どの手段を使用して情報を取得するかを指定します。ここには、NISデータベースを作成した、passwd、group、hostsに関する情報をNISサーバーから参照するように設定します。
NISを使用して情報を取得するように次のように修正します。
【設定内容】
passwd: nis files
group: nis files
hosts: nis files dns

NISクライアントの起動
/etc/init.d/ypbind start

chkconfigコマンドの実行
chkconfig ypbind on
その他
新規ユーザーの作成
/usr/lib/yp/ypinit -m
新規にユーザーを作成するには、NISサーバーでアカウントを作成する必要があります。
登録したユーザーを反映させるために、NISデータベースを更新します。