NIS とは、ある限られたグループ(netgroup)内で情報を共有しようというものである。 例えば、/etc/passwd, /etc/group を共有することで認証の統一を図れたり、 /etc/auto.master などを共有することで、automounter の設定ファイルを共有 できる。 それらのファイルは各マシンが個々に持っていてもいいが、変更の度に全マシン の設定を同期させるのは面倒である。 そのためにこれまで多くの UNIX ドメインで使われてきたのが NIS である。 しかし、network 上を暗号化なしに情報が垂れ流されるため、近頃は排斥される 傾向にある。 個人的には LDAP 化して欲しい。
NIS で一元管理する情報は以下の通り。上2つは、NIS でよく共有されるのがユーザーとグループの設定ファイルである。 /etc/auto.master は automounter の設定ファイルである。 automounter とは、アクセスがあると自動的にマウントしてくれるもので、 NFS や CD-ROM など、常にアクセスしないデバイスやファイルに対して使われることが多い。 NFS はネットワークで storage を共有するもので、ネットワークにかける負荷 も大きい。 そのため、常にマウントしておくのはリソースの無駄なため、 automount でもってアクセスのある時だけマウントさせる。 default では 60 秒アクセスがないと unmount される。
MEG-ICEPP では、NIS サーバを boss にしている。 boss を NIS サーバ とするためには次の file を変更しなければならない。 NIS サーバの設定を GUI ではしないので注意。
NIS のクライアントの設定ファイルである /etc/yp.conf を次のように設定する。 ちなみに、boss は NIS サーバだが、同時にクライアントでもある。
# # yp.conf Configuration file for the ypbind process. You can define # NIS servers manually here if they can't be found by # broadcasting on the local net (which is the default). # # See the manual page of ypbind for the syntax of this file. # # IMPORTANT: For the "ypserver", use IP addresses, or make sure that # the host is in /etc/hosts. This file is only interpreted # once, and if DNS isn't reachable yet the ypserver cannot # be resolved and ypbind won't ever bind to the server. domain iceppstu server boss
/etc/ypserv.securenets は次のように設定する。
# # securenets This file defines the access rights to your NIS server # for NIS clients. This file contains netmask/network # pairs. A clients IP address needs to match with at least # one of those. # # One can use the word "host" instead of a netmask of # 255.255.255.255. Only IP addresses are allowed in this # file, not hostnames. # # Always allow access for localhost 255.0.0.0 127.0.0.0 # This line gives access to everybody. PLEASE ADJUST! 255.255.254.0 133.11.24.0以前は /etc/passwd や /etc/group に NIS を使うおまじない (+::0:0::: とか +:) を追加したが、RedHat などの最近の distribution では そんな煩雑なことはしなくて良くなった。 ただ、setup コマンドを用いて、NIS を選べば良いだけである。
# $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $ # Sample auto.master file # Format of this file: # mountpoint map options # For details of the format look at autofs(8). /u auto.u /s auto.s /net auto.net #/net -hosts -nosuid #/asis auto.asis
### ### /etc/auto.u ### ### 21/Jun/2001 K.Ozone ### 22/Jul/2001 H.Nishiguchi ### 12/mar/2002 K.Ozone ### 04/Aug/2003 K.Ozone ### 24/Nov/2003 K.Ozone Don't use TAB as a delimitor. ###### ICEPP PC users # Mori Lab. hajime -fstype=nfs,rw emerald:/scratch/hajime sawada -fstype=nfs,rw umemaru:/scratch1/sawada mitty -fstype=nfs,rw santos:/work3/mitty pekochan -fstype=nfs,rw mexico:/home/pekochan muegamma -fstype=nfs,rw mexico:/home/muegamma meg -fstype=nfs,rw columbia:/scratch2/meg kotajima -fstype=nfs,rw columbia:/scratch2/kotajima pochi -fstype=nfs,rw mexico:/home/pochi uchiyama -fstype=nfs,rw umemaru:/scratch2/uchiyama natori -fstype=nfs,rw santos:/work1/natori deguchi -fstype=nfs,rw emerald:/scratch/deguchi nisimura -fstype=nfs,rw emerald:/scratch/nisimura # Kobayshi Lab. nanjyo -fstype=nfs,rw pekoe:/home/nanjyo # Staffs mihara -fstype=nfs,rw santos:/work1/mihara wataru -fstype=nfs,rw columbia:/scratch2/wataru ozone -fstype=nfs,rw maxim:/scratch1/ozone # OBs (Partially To be Removed) miyazawa -fstype=nfs,rw columbia:/work/miyazawa
boss の auto.s を新規作成する。 auto.s は scratch 領域用の automount table である。 /scratch そのものを mount させるのは好ましくなく、 /scratch/meg/ などを作り、それを mount させるようにする。 書式は key option locateion の通り。
man 5 autofsを参照されたし。 例えば
muegamma1 -fstype=nfs,rw boss:/scratch/muegammaとする。key(この場合、muegamma1)の命名ルールは適当で、とりあえず作っ た順に番号をつけてある。 で、この場合、各マシンで /s/muegamma1/ に boss:/scratch/muegamma/ が automount される。 automount の特徴として、ls などの参照コマンドを使ってはじめてマウントさ れるので、マウント前に shell 上で
# /s/ [TAB]と補完を催促しても表示されない。
### ### /etc/auto.s ### ### 21/Jun/2001 K.Ozone ### 04/Aug/2003 K.Ozone # User's scratches # MEG muegamma1 -fstype=nfs,rw boss:/scratch/muegamma muegamma2 -fstype=nfs,rw mexico:/scratch1/muegamma muegamma3 -fstype=nfs,rw mexico:/scratch2/muegamma muegamma4 -fstype=nfs,rw maxim:/scratch3/muegamma muegamma5 -fstype=nfs,rw mexico:/scratch3/muegamma ozone1 -fstype=nfs,rw boss:/work2/ozone1 ozone3 -fstype=nfs,rw maxim:/scratch2/ozone ozone4 -fstype=nfs,rw maxim:/scratch4/ozone ozone5 -fstype=nfs,rw maxim:/scratch5/ozone meg1 -fstype=nfs,rw columbia:/scratch1/meg1 meg2 -fstype=nfs,rw columbia:/scratch2/meg2 meg3 -fstype=nfs,rw santos:/work1/meg3 meg4 -fstype=nfs,rw santos:/work1/meg4 pochi1 -fstype=nfs,rw assam:/scratch1/pochi1 pochi2 -fstype=nfs,rw mexico:/scratch3/pochi2 psi_dc -fstype=nfs,rw emerald:/storage2/psi_dc pekochan -fstype=nfs,rw mexico:/scratch2/pekochan # though NOT recommended mp3j -fstype=nfs,rw boss:/work3/mp3 mp3f -fstype=nfs,rw boss:/work2/mp3
* -fstype=nfs,rw,nonstrict &:/
最後に、/var/yp/Makefile を作る。 default では passwd file とかしか見てくれていないと思うので、 環境に合わせて変更する。 Makefile の知識が必要です。 見て理解するのは簡単だけど、書くのは難しいかも。 全部書くのは煩わしいので ココ に up しときました。
/etc/auto.* など NIS で扱っているファイルを変更した場合は 必ずサーバー上で
cd /var/yp make
を行ってください。 こうすることで初めて、NIS map が更新され、NIS client に更新内容が告げら れます。 /etc/passwd や /etc/group については事情が異なります。 ちなみに passwd コマンドは NIS 環境下では yppasswd にとって変わりますの で注意しましょう。 このコマンドは server に対して、大元の /etc/passwd を変更してくれという 要求をします。 server は passwd ファイルを更新しますが、 NIS map はその時には更新されません。 NIS map の更新は毎日決まった時間に行われますので、 それまでは古い password を使うことになります。 もし、今すぐにでも変更内容を反映したいなら、 boss に行って
cd /var/yp make service restart ypserv
とします。ypserv の restart だけでもいいかも。
su - vi /etc/netgroup
(newhostname,,)という具合いに書けば良いでしょう。 で、更新したら
cd /var/yp makeとすると、netgroup が更新されたというメッセージが出て、NIS map が更新さ れます。 これをしないと永遠に更新されないので注意しましょう。
service ypserv restart
これを行うことで、 netgroup に所属するマシンに周知されます。
nfs は network 越しに他のマシンの disk を mount するサービスです。 netgroup に所属するマシンのみに NFS mount を許すために /etc/expoerts を例えば次のように作成する。
/ @iceppstu-hosts(rw,sync) /scratch1 @iceppstu-hosts(rw,sync) /scratch2 @iceppstu-hosts(rw,sync)
他のマシンに見られたくない partition については記述する必要はないが、 全ての partition に対して設定することが望ましい。 設定したら、次のコマンドを実行して NFS を restart する。
service nfs restart service nfslock restart
ここで出てくる nfslock とは、 nfs mount されたファイルを不意の temination(unmount, reboot等) に備え lock できるようにするサービスである。 unmount されずに HDD の電源が切れるとファイルシステムが壊れることがあるた め、そのような仕組みが用意されている。
最後に、NIS を有効にします。 RedHat では setup というコマンドが用意されているので、 これを使って設定します。
キャッシュを有効にし、NIS を使うようにします。 ドメインとサーバー名もこれと同じにします。
あと、このように MD5 と shadow password は有効にしておいてください。