入力ファイルを確認して、それを入力ファイルディレクトリにコピーした後に、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 マップを適宜作成します。