入力ファイルを確認して、それを入力ファイルディレクトリにコピーした後に、NIS サービスが使用する ndbm 形式のマップに、その入力ファイルを変換する必要があります。「ypinit によるマスターサーバーの設定」の節で説明するとおり、これはマスターサーバーで ypinit が実行されると自動的に行われます。
ypinit スクリプトは、プログラム make を呼び出します。このプログラムは、/var/yp ディレクトリに置かれた Makefile を使用します。例 10-1 のようなデフォルトの Makefile が、/var/yp ディレクトリで提供されます。この Makefile は、入力ファイルの ndbm 形式マップへの変換に必要なコマンドを含みます。
Makefile はそのまま使用でき、必要なら修正もできます。デフォルトの Makefile を修正するときは、将来必要な場合に備えて最初にオリジナルのデフォルト Makefile をコピーして格納してください。次の Makefile への修正のうちの 1 つまたは複数を実行する必要がある場合があります。
「デフォルトではないマップ」
デフォルトではない自分専用の入力ファイルを作成していて、それを NIS マップに変換する場合には、その入力ファイルを Makefile に追加する必要があります。
DIR
の値
「入力ファイルディレクトリ」で説明するように、/etc 以外のディレクトリに格納されたソースファイルを Makefile に使用させるには、Makefile の DIR
の値を使用するディレクトリに変更する必要があります。この値を Makefile で変更するときは、行をインデントしないでください。
PWDIR
の値
/etc 以外のディレクトリに格納された passwd、shadow、または adjunct 入力ファイルを Makefile に使用させるには、Makefile の PWDIR
の値を使用するディレクトリに変更する必要があります。この値を Makefile で変更するときは、行をインデントしないでください。
「ドメイン名リゾルバ」
現在のドメインにはないマシンに対して、NIS サーバーがドメイン名リゾルバを使用するようにするには、Makefile の行 B= をコメント化し、B= -b のコメントを解除 (有効化) します。
# # Copyright (c) 1996-1999, by Sun Microsystems, Inc. # All rights reserved. # #pragma ident "@(#)Makefile 1.25 99/06/01 SMI" # #---- # It is somewhat confusing to note that Solaris 2.x uses /etc/auto_master # instead of the 4.x /etc/auto.master file name because of NIS+ treating a # "." in a special way. # # Set the following variable to "-b" to have NIS servers use the domain name # resolver for hosts not in the current domain. #B=-b B= DIR =/etc # # If the ipnodes (IPv6 hosts file) lives in a directory other than # /etc/inet, then you'll need to change the following line. # INETDIR=/etc/inet # # If the passwd, shadow and/or adjunct files used by rpc.yppasswdd # live in directory other than /etc then you'll need to change the # following line. # DO NOT indent the line, however, since /etc/init.d/yp attempts # to find it with grep "^PWDIR" ... # PWDIR =/etc DOM = `domainname` NOPUSH = "" ALIASES = /etc/mail/aliases YPDIR=/usr/lib/netsvc/yp SBINDIR=/usr/sbin YPDBDIR=/var/yp YPPUSH=$(YPDIR)/yppush MAKEDBM=$(SBINDIR)/makedbm MULTI=$(YPDIR)/multi REVNETGROUP=$(SBINDIR)/revnetgroup STDETHERS=$(YPDIR)/stdethers STDHOSTS=$(YPDIR)/stdhosts MKNETID=$(SBINDIR)/mknetid MKALIAS=$(YPDIR)/mkalias CHKPIPE= || ( echo "NIS make terminated:" $@ 1>&2; kill -TERM 0 ) k: @if [ ! $(NOPUSH) ]; then $(MAKE) $(MFLAGS) -k all; ¥ else $(MAKE) $(MFLAGS) -k all NOPUSH=$(NOPUSH);fi all: passwd group hosts ipnodes ethers networks rpc services protocols ¥ netgroup bootparams aliases publickey netid netmasks c2secure ¥ timezone auto.master auto.home ¥ auth.attr exec.attr prof.attr user.attr audit.user c2secure: -@if [ -f $(PWDIR)/security/passwd.adjunct ]; then ¥ if [ ! $(NOPUSH) ]; then $(MAKE) $(MFLAGS) -k ¥ passwd.adjunct.time group.adjunct.time; ¥ else $(MAKE) $(MFLAGS) -k NOPUSH=$(NOPUSH) ¥ passwd.adjunct.time group.adjunct.time; ¥ fi; ¥ fi passwd.time: $(PWDIR)/passwd $(PWDIR)/shadow -@if [ -f $(PWDIR)/security/passwd.adjunct ]; then ¥ (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ { $$2 = "##" $$1; ¥ printf "%s¥t%s¥n", $$1, $$0 }' $(PWDIR)/passwd $(CHKPIPE)) | ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byname; ¥ (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ { $$2 = "##" $$1; ¥ printf "%-10d¥t%s¥n", $$3, $$0 }' $(PWDIR)/passwd $(CHKPIPE)) | ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byuid; ¥ elif [ -f $(PWDIR)/shadow ]; then ¥ (nawk 'BEGIN { FS=":"; OFS=":"; while ( getline < "$(PWDIR)/shadow" > 0) ¥ shadow[$$1] = $$2; } /^[a-zA-Z0-9_]/ { $$2 = shadow[$$1]; ¥ printf "%s¥t%s¥n",$$1,$$0 }' $(PWDIR)/passwd $(CHKPIPE))| ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byname; ¥ (nawk 'BEGIN { FS=":"; OFS=":"; while ( getline < "$(PWDIR)/shadow" > 0) ¥ shadow[$$1] = $$2; } /^[a-zA-Z0-9_]/ { $$2 = shadow[$$1]; ¥ printf "%-10d¥t%s¥n",$$3,$$0 }' $(PWDIR)/passwd $(CHKPIPE))| ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byuid; ¥ else ¥ (awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' ¥ $(PWDIR)/passwd $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byname; ¥ (awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$3); ¥ print $$0 }' $(PWDIR)/passwd $(CHKPIPE))| $(MAKEDBM) - ¥ $(YPDBDIR)/$(DOM)/passwd.byuid; ¥ fi @touch passwd.time; @echo "updated passwd"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.byuid; fi @if [ ! $(NOPUSH) ]; then echo "pushed passwd"; fi group.time: $(DIR)/group @(awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' ¥ $(DIR)/group $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/group.byname; @(awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$3); ¥ print $$0 }' $(DIR)/group $(CHKPIPE)) | $(MAKEDBM) - ¥ $(YPDBDIR)/$(DOM)/group.bygid; @touch group.time; @echo "updated group"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.bygid; fi @if [ ! $(NOPUSH) ]; then echo "pushed group"; fi ipnodes.time: $(INETDIR)/ipnodes @($(MULTI) -n $(B) -l $(INETDIR)/ipnodes); @($(STDHOSTS) -n $(INETDIR)/ipnodes $(CHKPIPE))| ¥ (awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$1, $$0 }' $(CHKPIPE)) | ¥ $(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/ipnodes.byaddr; @touch ipnodes.time; @echo "updated ipnodes"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ipnodes.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ipnodes.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed ipnodes"; fi hosts.time: $(DIR)/hosts @($(MULTI) $(B) -l $(DIR)/hosts); @($(STDHOSTS) $(DIR)/hosts $(CHKPIPE))| ¥ (awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$1, $$0 }' $(CHKPIPE)) | ¥ $(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/hosts.byaddr; @touch hosts.time; @echo "updated hosts"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed hosts"; fi ethers.time: $(DIR)/ethers @($(STDETHERS) $(DIR)/ethers $(CHKPIPE)) ¥ |(awk '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' $(CHKPIPE)) ¥ | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/ethers.byaddr @(awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$2, $$0 }' ¥ $(DIR)/ethers $(CHKPIPE)) | ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/ethers.byname; @touch ethers.time; @echo "updated ethers"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ethers.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ethers.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed ethers"; fi networks.time: $(DIR)/networks @(sed -e "/^#/d" -e s/#.*$$// $(DIR)/networks $(CHKPIPE)) |( awk ¥ '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' ¥ $(CHKPIPE) )| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/networks.byname; @(awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$2, $$0 }' ¥ $(DIR)/networks $(CHKPIPE)) | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/networks.byaddr; @touch networks.time; @echo "updated networks"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) networks.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) networks.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed networks"; fi services.time: $(DIR)/services @(awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$2, $$0 }' ¥ $(DIR)/services $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/services.byname; @(awk 'BEGIN { OFS="¥t"; } ¥ $$1 !‾ /^#/ { split($$2,pp,"/"); printf("%s/%s %s¥n", $$1, pp[2], $$0);¥ if (seen[$$1] == "") {¥ printf("%s %s¥n", $$1, $$0); seen[$$1]=$$1;} ¥ for (i = 3; i <= NF && $$i !‾ /^#/; i++) ¥ printf("%s/%s %s¥n", $$i, pp[2], $$0)}' ¥ $(DIR)/services $(CHKPIPE)) | ¥ $(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/services.byservicename @touch services.time; @echo "updated services"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) services.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) services.byservicename; fi @if [ ! $(NOPUSH) ]; then echo "pushed services"; fi rpc.time: $(DIR)/rpc @(awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$2, $$0 }' ¥ $(DIR)/rpc $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/rpc.bynumber; @touch rpc.time; @echo "updated rpc"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) rpc.bynumber; fi @if [ ! $(NOPUSH) ]; then echo "pushed rpc"; fi protocols.time: $(DIR)/protocols @(awk 'BEGIN { OFS="¥t"; } $$1 !‾ /^#/ { print $$2, $$0 }' ¥ $(DIR)/protocols $(CHKPIPE)) | $(MAKEDBM) - ¥ $(YPDBDIR)/$(DOM)/protocols.bynumber; @(sed -e "/^#/d" -e s/#.*$$// $(DIR)/protocols $(CHKPIPE)) |( awk ¥ '{print $$1,$$0; for (i = 3;i <= NF;i++) print $$i, $$0}' ¥ $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/protocols.byname; @touch protocols.time; @echo "updated protocols"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) protocols.byname; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) protocols.bynumber; fi @if [ ! $(NOPUSH) ]; then echo "pushed protocols"; fi netgroup.time: $(DIR)/netgroup @$(MAKEDBM) $(DIR)/netgroup $(YPDBDIR)/$(DOM)/netgroup @($(REVNETGROUP) < $(DIR)/netgroup -u $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/netgroup.byuser @($(REVNETGROUP) < $(DIR)/netgroup -h $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/netgroup.byhost @touch netgroup.time; @echo "updated netgroup"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup.byuser; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup.byhost; fi @if [ ! $(NOPUSH) ]; then echo "pushed netgroup"; fi bootparams.time: $(DIR)/bootparams @(sed -e '/^#/d' -e s/#.*$$// -e 's/[ ][ ]*$$//' ¥ -e '/¥¥$$/s/¥¥$$/ /' $(DIR)/bootparams $(CHKPIPE))¥ |( awk '/ $$/ {printf "%s", $$0} !/ $$/ {print}' $(CHKPIPE))¥ |( sed -e 's/[ ][ ]*/ /g' $(CHKPIPE))¥ | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/bootparams; @touch bootparams.time; @echo "updated bootparams"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) bootparams; fi @if [ ! $(NOPUSH) ]; then echo "pushed bootparams"; fi aliases.time: $(ALIASES) @cp $(ALIASES) $(YPDBDIR)/$(DOM)/mail.aliases; @/usr/lib/sendmail -bi -oA$(YPDBDIR)/$(DOM)/mail.aliases; $(MKALIAS) $(YPDBDIR)/$(DOM)/mail.aliases $(YPDBDIR)/$(DOM)/mail.byaddr; @rm $(YPDBDIR)/$(DOM)/mail.aliases; @touch aliases.time; @echo "updated aliases"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) mail.aliases; fi @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) mail.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed aliases"; fi netmasks.time: $(DIR)/netmasks $(MAKEDBM) $(DIR)/netmasks $(YPDBDIR)/$(DOM)/netmasks.byaddr; @touch netmasks.time; @echo "updated netmasks"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netmasks.byaddr; fi @if [ ! $(NOPUSH) ]; then echo "pushed netmasks"; fi publickey.time: $(DIR)/publickey @(sed "/^#/d" < $(DIR)/publickey $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/publickey.byname; @touch publickey.time; @echo "updated publickey"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) publickey.byname; fi @if [ ! $(NOPUSH) ]; then echo "pushed publickey"; fi netid.time: $(PWDIR)/passwd $(DIR)/group $(DIR)/hosts $(DIR)/netid @$(MKNETID) -q -p $(PWDIR)/passwd -g $(DIR)/group -h $(DIR)/hosts -m $(DIR)/netid > .ypjunk; @$(MAKEDBM) .ypjunk $(YPDBDIR)/$(DOM)/netid.byname; @rm -f .ypjunk; @touch netid.time; @echo "updated netid"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netid.byname; fi @if [ ! $(NOPUSH) ]; then echo "pushed netid"; fi # Old way. Could be restored by PSARC decision. # #passwd.adjunct.time: $(PWDIR)/security/passwd.adjunct # @(awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/security/passwd.adjunct $(CHKPIPE)) | ¥ # $(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/passwd.adjunct.byname; # @chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.dir; # @chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.pag; # @touch passwd.adjunct.time # @echo "updated passwd.adjunct"; # @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.adjunct.byname; fi # @if [ ! $(NOPUSH) ]; then echo "pushed passwd.adjunct"; fi passwd.adjunct.time: $(PWDIR)/security/passwd.adjunct $(PWDIR)/shadow -@if [ -f $(PWDIR)/shadow ]; then ¥ (nawk 'BEGIN { FS=":"; while (getline < "$(PWDIR)/shadow" > 0) ¥ shadow[$$1] = $$2; } /^[a-zA-Z0-9_]/ { $$2 = shadow[$$1]; OFS=":"; ¥ printf "%s¥t%s¥n", $$1, $$0 }' $(PWDIR)/security/passwd.adjunct $(CHKPIPE)) | ¥ $(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/passwd.adjunct.byname; ¥ else ¥ (awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' ¥ $(PWDIR)/security/passwd.adjunct $(CHKPIPE)) | ¥ $(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/passwd.adjunct.byname; ¥ fi @chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.dir; @chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.pag; @touch passwd.adjunct.time @echo "updated passwd.adjunct"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.adjunct.byname; fi @if [ ! $(NOPUSH) ]; then echo "pushed passwd.adjunct"; fi group.adjunct.time: $(PWDIR)/security/group.adjunct @(awk 'BEGIN { FS=":"; OFS="¥t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/security/group.adjunct $(CHKPIPE)) | ¥ $(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/group.adjunct.byname; @chmod 600 $(YPDBDIR)/$(DOM)/group.adjunct.byname.dir; @chmod 600 $(YPDBDIR)/$(DOM)/group.adjunct.byname.pag; @touch group.adjunct.time @echo "updated group.adjunct"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.adjunct.byname; fi @if [ ! $(NOPUSH) ]; then echo "pushed group.adjunct"; fi timezone.time: $(DIR)/timezone -@if [ -f $(DIR)/timezone ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/timezone ¥ | awk '{for (i = 2; i<=NF; i++) print $$i, $$0}' ¥ | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/timezone.byname; ¥ touch timezone.time; ¥ echo "updated timezone"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) timezone.byname; ¥ echo "pushed timezone"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/timezone"; ¥ fi auto.master.time: $(DIR)/auto_master -@if [ -f $(DIR)/auto_master ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/auto_master ¥ | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto.master; ¥ touch auto.master.time; ¥ echo "updated auto.master"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) auto.master; ¥ echo "pushed auto.master"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/auto_master"; ¥ fi auto.home.time: $(DIR)/auto_home -@if [ -f $(DIR)/auto_home ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/auto_home ¥ | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto.home; ¥ touch auto.home.time; ¥ echo "updated auto.home"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) auto.home; ¥ echo "pushed auto.home"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/auto_home"; ¥ fi auth.attr.time: $(DIR)/auth_attr -@if [ -f $(DIR)/auth_attr ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/auth_attr ¥ |sed -e '/¥¥$$/{:l' -e 'N;s/¥¥¥n//;t h' -e ':h' ¥ -e 's/¥¥$$/¥¥/;t l' -e } ¥ | (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ ¥ {printf "%s:%s¥n", $$1, $$0 }' $(CHKPIPE)) ¥ | $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/auth_attr; ¥ touch auth.attr.time; ¥ echo "updated auth_attr"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) auth_attr; ¥ echo "pushed auth_attr"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/auth_attr"; ¥ fi exec.attr.time: $(DIR)/exec_attr -@if [ -f $(DIR)/exec_attr ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/exec_attr ¥ |sed -e '/¥¥$$/{:l' -e 'N;s/¥¥¥n//;t h' -e ':h' ¥ -e 's/¥¥$$/¥¥/;t l' -e } ¥ | (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ ¥ {printf "%s:%s:%s¥n", ¥ $$1, $$6, $$0 }' $(CHKPIPE)) ¥ | $(MAKEDBM) -S ":" -E -D 1 - $(YPDBDIR)/$(DOM)/exec_attr; ¥ touch exec.attr.time; ¥ echo "updated exec_attr"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) exec_attr; ¥ echo "pushed exec_attr"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/exec_attr"; ¥ fi prof.attr.time: $(DIR)/prof_attr -@if [ -f $(DIR)/prof_attr ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/prof_attr ¥ |sed -e '/¥¥$$/{:l' -e 'N;s/¥¥¥n//;t h' -e ':h' ¥ -e 's/¥¥$$/¥¥/;t l' -e } ¥ | (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ ¥ {printf "%s:%s¥n", $$1, $$0 }' $(CHKPIPE)) ¥ | $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/prof_attr; ¥ touch prof.attr.time; ¥ echo "updated prof_attr"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) prof_attr; ¥ echo "pushed prof_attr"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/prof_attr"; ¥ fi user.attr.time: $(DIR)/user_attr -@if [ -f $(DIR)/user_attr ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/user_attr ¥ |sed -e '/¥¥$$/{:l' -e 'N;s/¥¥¥n//;t h' -e ':h' ¥ -e 's/¥¥$$/¥¥/;t l' -e } ¥ | (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ ¥ {printf "%s:%s¥n", $$1, $$0 }' $(CHKPIPE)) ¥ | $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/user_attr; ¥ touch user.attr.time; ¥ echo "updated user_attr"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) user_attr; ¥ echo "pushed user_attr"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/user_attr"; ¥ fi audit.user.time: $(DIR)/audit_user -@if [ -f $(DIR)/audit_user ]; then ¥ sed -e "/^#/d" -e s/#.*$$// $(DIR)/audit_user ¥ |sed -e '/¥¥$$/{:l' -e 'N;s/¥¥¥n//;t h' -e ':h' ¥ -e 's/¥¥$$/¥¥/;t l' -e } ¥ | (nawk 'BEGIN { FS=":"; OFS="¥t" } /^[a-zA-Z0-9_]/ ¥ {print $$1, $$0 }' $(CHKPIPE)) ¥ | $(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/audit_user; ¥ touch audit.user.time; ¥ echo "updated audit_user"; ¥ if [ ! $(NOPUSH) ]; then ¥ $(YPPUSH) audit_user; ¥ echo "pushed audit_user"; ¥ else ¥ : ; ¥ fi ¥ else ¥ echo "couldn't find $(DIR)/audit_user"; ¥ fi passwd: passwd.time group: group.time hosts: hosts.time ipnodes: ipnodes.time ethers: ethers.time networks: networks.time rpc: rpc.time services: services.time protocols: protocols.time netgroup: netgroup.time bootparams: bootparams.time aliases: aliases.time publickey: publickey.time netid: netid.time passwd.adjunct: passwd.adjunct.time group.adjunct: group.adjunct.time netmasks: netmasks.time timezone: timezone.time auto.master: auto.master.time auto.home: auto.home.time auth.attr:auth.attr.time exec.attr:exec.attr.time prof.attr:prof.attr.time user.attr:user.attr.time audit.user:audit.user.time $(DIR)/netid: $(DIR)/timezone: $(DIR)/auto_master: $(DIR)/auto_home: $(PWDIR)/shadow: $(DIR)/auth_attr: $(DIR)/exec_attr: $(DIR)/prof_attr: $(DIR)/user_attr: $(DIR)/audit_user: |
Makefile は、all の下にリストされるデータベースのそれぞれに対して、適切な NIS マップを作成します。データは、makedbm で処理され、mapname.dir と mapname.pag の 2 つのファイルに保存されます。この両方はマスターサーバーの /var/yp/domainname ディレクトリに置かれます。
Makefile は、/PWDIR/passwd、/PWDIR/shadow、/PWDIR/security/passwd.adjunct ファイルから passwd マップを適宜作成します。