Solaris 上で NIS サーバを動かし, passwd, group, hosts の 3つのファイルを管理し ます。 LAN 内の問い合わせに応じて、これら3つのファイルを配布します. 動作確認まで行ないます。
LAN 内の問い合わせに応じるが, LAN 外の問い合わせには応じない. passwd, group, hosts は管理するが、これら3つのファイル以外は配布しない. ypserv, ypxfrd, yppasswdd を動かします.
NIS サーバで passwd, group, hosts の3つを管理します. ここでの手順では, passwd, group, hosts のごく簡単なサンプルを作る。
# mkdir /var/yp/nis.inputs
# vi /var/yp/nis.inputs/passwd
passwd の文法は次のようになります.
----- <ユーザ名>:*:20001:800:<ユーザの説明>:/home/<ユーザ名>:/bin/tcsh -----
# vi /var/yp/nis.inputs/hosts
hosts には、次のように NIS サーバ自身についての情報を含めておきます
----- 127.0.0.1 localhost <NIS サーバの IP アドレス> <NIS サーバのホスト名>.<DNS ドメイン名> <NIS サーバのホスト名> -----
# vi /var/yp/nis.inputs/group
group の文法は次のようになります.
----- 8th:*:800: -----
次のような2行を含むこと. (NIS マスターサーバと NISスレーブサーバが有る 場合は、この2台について書いておく)
127.0.0.1 localhost <NIS サーバの IP アドレス> <NIS サーバのホスト名>.<DNS ドメイン名> <NIS サーバのホスト名>
DIR, PWDIR システムをデフォルト値から /var/yp/nis.inputs に変更 します. これは、NIS が管理するデータファイルの置場です。
さらに, all の行を変更して、passwd, group, hosts は管理するが、これら3つのファ イル以外は配布しないようにしています.
DNS 関係について。先頭部分の「B=-b」がコメントになっているのを外 し、「B=」はコメントにします。
vi /var/yp/Makefile # (1) DIR システムを変更 # DIR= /etc # ↓ # DIR= /var/yp/nis.inputs # (2) PWDIR システムを変更 # PWDIR= /etc # ↓ # PWDIR= /var/yp/nis.inputs # (3) all を変更 # all: passwd group ipnodes ... # ↓ # all: passwd group hosts # (4) DNS 関係 # #B=-b # B= # ↓ # B=-b # #B=
domainname # 正しい NIS ドメイン名が表示されることを確実に確認する
もし、NIS ドメイン名が正しくないときは、次のコマンドを実行して変更して おく
/usr/sbin/domainname <NISドメイン名>
警告(Warning)メッセージが出てきたら、熟読し、適切に対処すること。
cd /var/yp /usr/lib/yp/ypinit -m # 次のように表示されるので確認する --- servers. cent1.db.is.kyushu-u.ac.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. next host to add: cent1.db.is.kyushu-u.ac.jp next host to add: --- # NIS サーバが正しく表示されない場合に限り、「next host to add:」に対 # して、NIS サーバ名を入れる
設定が終ったら「ctrl+D」で終了させる
次のように表示されるので、NIS サーバ名が正しく表示されていることを確認 し、「y」で終了させる
The current list of NIS servers looks like this: sol1 Is this correct? [y/n: y] y
yppasswd は /var/yp/nis.inputs のパスワードファイルを扱うように自動的 に設定がなされます (/etc/passwd と混同しないこと)。
ypserv が稼働中であることを確認.
設定ファイルのチェックを兼ねる。 (そのため make としないで、わざと make hosts, make passwd, make group のように3手順を踏む)。設定のミスがあったり, ypserv が稼働していないとエラーがでる.
cd /var/yp make hosts make passwd make group
make においてエラーが出たら、設定ファイルを見直して、 「11. ypserv, yppasswdd, ypxfrd の起動」及びそれ以降の全手順をやり直す.
(参考) 今後、/var/yp/nis.inputs 下のファイルを書き換えたら、そのたびに、 「cd /var/yp; make」を実行すること(サーバの再起動などを手動で行なう必 要は無い).
Solaris ならば、開始は、
/usr/lib/netsvc/yp/ypstart rpcstart
終了は、
/usr/lib/netsvc/yp/ypstop
で出来るので、この時点で、手動での終了と起動をしてみるとよいでしょう。 (なお、/etc/rc2.d/S71rpc で、OSの起動時に、自動的に ypserv 等の開始が行なわれるように設定されている)。
yppasswd コマンドを実行した時に、NIS サーバマシン上でのパスワード形式が、 DES または MD5 のどちらであるかを確 認しておく。
今のパスワードが、DES なのか MD5 なのかは、passwd 等のパスワー ドに $1$ が付いているかで判別します。MD5 なら付いている。
# yppasswd で hoge ユーザの 新しいパスワードを設定した後に、次のコマンドを実行 cat /var/yp/nis.inputs/passwd
portmap, ypserv の2行を次のように設定する. (portmap, ypserv の2行が無ければ、書き加える)
vi /etc/hosts.deny --- portmap: ALL ypserv: ALL ---
portmap, ypserv の2行を次のように設定する(portmap, ypserv の2行が無け れば、書き加える). (XXX,YYY,ZZZ の部分は LAN のネットワークアドレスを書く.
vi /etc/hosts.allow --- portmap: XXX.YYY.ZZZ. ypserv: 127.0.0.1 XXX.YYY.ZZZ. ---
「XXX.YYY.ZZZ」 の部分は LAN のネットワークアドレス
# vi /var/yp/securenets ----- 255.255.255.255 127.0.0.1 255.255.255.0 XXX.YYY.ZZZ.0 -----
設定を間違うと、NIS サーバと接続できなくなる(接続できるかできないかは ypwhich, ypcat コマンドで確認できる)。
man -s 4 securenets
rpcinfo | grep ypbind # ypbind についての情報が表示される
ypwhich
ここで設定した「NISサーバ」が表示されることを確認.
ypcat passwd ypcat group ypcat hosts
正しく表示されれば成功
ypcat rpc ypcat services ypcat netid ypcat protocols ypcat mail
表示されないことを確認
ps -e | grep yppasswd で、rpc.yppasswddが出るか?
クライアント側で
yppasswd <ユーザー名>
でパスワードが変更できるかどうかを確認