NISは、ネットワーク環境でのデータベース機能を提供するサービスで、主にlinuxの設定情報(/etc/hostsや/etc/aliases/、/etc/passwd、/etc/groupなどを集中管理するものです。
ひとつのドメイン内にひとつだけオリジナルの設定情報を持つホスト(master)が存在し、それを参照するクライアント(client)を複数持つことができます。なお、負荷分散と障害対策のために設定情報のコピーを保持してmasterと同等の働きをするスレーブサーバー(slave)を置くことができます。
NFSクライアントとNFSサーバーの間は、ユーザーID、グループIDが共通でなければ正しいアクセス権限でファイルやディレクトリにアクセスすることはできません。NISを使えばひとつのホスト(master)上の設定ファイルだけを正しく編集するだけでよいので、分散したマシンの管理が楽になります。
参考: NFSでファイル共有
NISと同じ機能を実現でき、さらにいくつかの優れた点をもつLDAPというものもありますがここではNISを使ってみます。
master/client構成で、両方ともdebian etchとします。
# apt-get install nis
NIS DOMAIN = hogehoge
NISドメイン名はインターネットのドメインとは異なります。何でもかまいません
# vi /etc/defaultdomainで変更もできます。
# vi /etc/default/nis
NISSERVER=master → masterの場合
NISSERVER=false → clientの場合
# /usr/lib/yp/ypinit -m
# cd /var/yp
# make
# /etc/init.d/nis restart
(自動起動設定確認)
# ls /etc/rc2.d/* | grep nis
S**nisがあれば良い。
# ls /etc/rc2.d/* | grep portmap
S**portmapがあれば良い。
但し、**の数字は、nisより少ないこと。(先に起動させる)
参考: 起動とランレベル
# vi /etc/yp.conf
ypserv NISサーバー名
# vi /etc/nsswitch.conf
passwd: nis compat
group: nis compat
shadow: nis compat
# /etc/init.d/nis restart
(動作確認)
# ypwhich
サーバー名が返ってくる
# ypcat passed
パスワードファイルが見える
# ypcat group
グループファイルが見える
※サーバーにて
# adduser hoge
# make
※サーバーにて
% yppasswd