NIS

UNIX 演習でつまずいていたところをメモ.

ログインできなくなった

/etc/nsswitch.conf で

passwd: files nisplus nis
shadow: files nisplus nis
group: files nisplus nis

のように最初にローカルのファイルを読みに行くように設定すべきところを,

passwd: nis
shadow: nis
group: nis

だけにしていたので,ローカルの /etc/passwd などを読まなくなって root でさえログインできなくなっていた.そのため,シングルユーザモードで起動して設定を修正.

ypserv が起動しない

/etc/sysconfig/network で環境変数 NISDOMAIN が定義されていなければ

# /etc/init.d/ypserv start

とやっても ypserv が起動せず,その際,エラーメッセージも表示されない.(というより,正常に起動したときは "Starting YP server services:" と表示される.)
/etc/init.d/ypserv の中身を読めば分かる.

ypcat passwd しても何も表示されない

NIS で passwd, shadow を共有するとき,UID がある閾値未満であるユーザのレコードは共有されない.同様に group を共有するとき,GID がある閾値未満であるグループのレコードは共有されない.これはセキュリティの都合上,root や system 系のユーザやグループの情報を公開しないためである.これらの情報は /var/yp/Makefile に記述されている.

MINUID=500
MINGID=500

ちなみに,ypcat passwd を試した時点では root 以外のユーザを作成していなかった.なお,試しに adduser でユーザを追加したとき,勝手に 500 以上の UID が割り振られた.

ファイルを更新したはずなのに ypcat したとき更新が反映されていない

NIS で共有するデータを更新するたびに /var/yp で make する必要がある.