next up previous contents
Next: 3.12 演習課題 Up: 3. ユーザー登録と NIS Previous: 3.10.4 DNS, NIS, local

3.11 その他

これまで見てきたように NIS で参照されるか、ローカルで参照されるかは nsswitch.conf で決まります。そして、スレーブ・サーバを含めてクライアント マシンでは、ローカルな設定と NIS での設定が矛盾しなければ、同一の設定 でなくても構わない訳です( nsswitch.conf の書き方では矛盾しても問題ない 場合もあります)。例えば、NIS で配布している group 以外の group をあるマシン上で設定したり、あるマシン上でのみその group に所属するような 設定が可能です。しかし、ここには一つ問題があります。それは、マスター・ サーバ上では一致してしまうという問題です。マスター・サーバ上では、 /etc/group ファイルを元にして、NIS の group map を作成するために、必然的に NIS の内容とローカルなファイルの内容は一致してしまいます。場合によっては、 マスター・サーバ上でも、ローカルな設定と NIS の設定を異なるものにしたい 場合があるでしょう。これは不可能かと言うと、そうではありません。 NIS map を生成するファイルを変更すれば良いのです。では、どうやれば変更出来る かですが、先に見た /var/yp/Makefile が鍵を握っています。本学で使用している Makefile の中の group に関する部分を見てみましょう。

group.time: /var/yp/group.yp
  @(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' \
  /var/yp/group.yp $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/group.byname; 
  @(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$3);\
  print $$0 }' /var/yp/group.yp $(CHKPIPE)) | \
  $(MAKEDBM) - $(YPDBDIR)/$(DOM)/group.bygid;

ここでポイントとなるのは、/var/yp/group.yp です。元々の Makefile では、ここは /etc/group になっていたのです。つまり、これによって NIS の group map は /var/yp/group.yp から生成されていることになります。従って、サーバー上でも /etc/group と NIS group map が参照されることになるので(参照の順序などは nsswitch.conf で決まります)、サーバーでは必要な group のみを記述し、NIS 上で共通な部分を配るようになっています。

元々、本学でこうした運営を始めた理由は、機種の違いを乗り越えるためでした。 OS やメーカが違うと、基本的な group の番号ですら違うことがあります。そのために、 それらを矛盾なく NIS 上で扱うために、OS やマシンの違いはローカルに持ち、 本学の環境全体に共通な部分を NIS で配るようにした訳です。同じように、 NIS map とローカルとを区別しているものに aliases があります。こちらは、group の場合と少し理由が違い、メイリングリストの運用のために分離しています (詳しくは、Mail の章で扱います)。



Noriyo Kanayama