xref: /titanic_41/usr/src/cmd/ypcmd/net_files/Makefile (revision 672986541be54a7a471bb088e60780c37e371d7e)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
22# Use is subject to license terms.
23#
24#      Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T
25#      All Rights Reserved
26#
27# Portions of this source code were derived from Berkeley
28# under license from the Regents of the University of
29# California.
30#
31# ident	"%Z%%M%	%I%	%E% SMI"
32#
33#----
34# It is somewhat confusing to note that Solaris 2.x uses /etc/auto_master
35# instead of the 4.x /etc/auto.master file name because of NIS+ treating a
36# "." in a special way.
37#
38# Set the following variable to "-b" to have NIS servers use the domain name
39# resolver for hosts not in the current domain.
40#B=-b
41B=
42DIR =/etc
43#
44# If the ipnodes (IPv6 hosts file) lives in a directory other than
45# /etc/inet, then you'll need to change the following line.
46#
47INETDIR=/etc/inet
48#
49# If the audit_user, auth_attr, exec_attr, prof_attr files
50# live in a directory other than /etc/security, then you'll
51# need to change the following line.
52#
53RBACDIR=/etc/security
54#
55# If the passwd, shadow and/or adjunct files used by rpc.yppasswdd
56# live in directory other than /etc then you'll need to change the
57# following line.
58# DO NOT indent the line, however, since /etc/init.d/yp attempts
59# to find it with grep "^PWDIR" ...
60#
61PWDIR =/etc
62DOM = `domainname`
63NOPUSH = ""
64ALIASES = /etc/mail/aliases
65YPDIR=/usr/lib/netsvc/yp
66SBINDIR=/usr/sbin
67YPDBDIR=/var/yp
68YPPUSH=$(YPDIR)/yppush
69MAKEDBM=$(SBINDIR)/makedbm
70MULTI=$(YPDIR)/multi
71REVNETGROUP=$(SBINDIR)/revnetgroup
72STDETHERS=$(YPDIR)/stdethers
73STDHOSTS=$(YPDIR)/stdhosts
74MKNETID=$(SBINDIR)/mknetid
75MKALIAS=$(YPDIR)/mkalias
76
77CHKPIPE=  || (  echo "NIS make terminated:" $@ 1>&2; kill -TERM 0 )
78
79
80k:
81	@if [ ! $(NOPUSH) ]; then $(MAKE)  $(MFLAGS) -k all; \
82	else $(MAKE) $(MFLAGS) -k all NOPUSH=$(NOPUSH);fi
83
84all: passwd group hosts ipnodes ethers networks rpc services protocols \
85	netgroup bootparams aliases publickey netid netmasks c2secure \
86	timezone auto.master auto.home ageing \
87	auth.attr exec.attr prof.attr user.attr audit.user
88
89c2secure:
90	-@if [ -f $(PWDIR)/security/passwd.adjunct ]; then \
91		if [ ! $(NOPUSH) ]; then $(MAKE)  $(MFLAGS) -k \
92		passwd.adjunct.time group.adjunct.time; \
93		else $(MAKE) $(MFLAGS) -k NOPUSH=$(NOPUSH) \
94		passwd.adjunct.time group.adjunct.time; \
95		fi; \
96	fi
97
98passwd.time: $(PWDIR)/passwd $(PWDIR)/shadow
99	-@if [ -f $(PWDIR)/security/passwd.adjunct ]; then \
100		(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; \
101		(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; \
102	elif [ -f $(PWDIR)/shadow ]; then \
103		(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; \
104		(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; \
105	else \
106		(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/passwd  $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byname; \
107		(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$3); print $$0 }' $(PWDIR)/passwd $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/passwd.byuid; \
108	fi
109	@touch passwd.time;
110	@echo "updated passwd";
111	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.byname; fi
112	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.byuid; fi
113	@if [ ! $(NOPUSH) ]; then echo "pushed passwd"; fi
114
115group.time: $(DIR)/group
116	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(DIR)/group $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/group.byname;
117	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$3); print $$0 }' $(DIR)/group $(CHKPIPE)) | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/group.bygid;
118	@touch group.time;
119	@echo "updated group";
120	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.byname; fi
121	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.bygid; fi
122	@if [ ! $(NOPUSH) ]; then echo "pushed group"; fi
123
124project.time: $(DIR)/project
125	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(DIR)/project $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/project.byname;
126	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { printf("%-10d ", $$2); print $$0 }' $(DIR)/project $(CHKPIPE)) | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/project.byprojid;
127	@touch project.time;
128	@echo "updated project";
129	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) project.byname; fi
130	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) project.byprojid; fi
131	@if [ ! $(NOPUSH) ]; then echo "pushed project"; fi
132
133ipnodes.time: $(INETDIR)/ipnodes
134	@($(MULTI) -n $(B) -l $(INETDIR)/ipnodes);
135	@($(STDHOSTS) -wn $(INETDIR)/ipnodes $(CHKPIPE))| \
136	(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$1, $$0 }' $(CHKPIPE)) | \
137	$(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/ipnodes.byaddr;
138	@touch ipnodes.time;
139	@echo "updated ipnodes";
140	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ipnodes.byname; fi
141	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ipnodes.byaddr; fi
142	@if [ ! $(NOPUSH) ]; then echo "pushed ipnodes"; fi
143
144hosts.time: $(DIR)/hosts
145	@($(MULTI) $(B) -l $(DIR)/hosts);
146	@($(STDHOSTS) -w $(DIR)/hosts $(CHKPIPE))| \
147	(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$1, $$0 }' $(CHKPIPE)) | \
148	$(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/hosts.byaddr;
149	@touch hosts.time;
150	@echo "updated hosts";
151	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byname; fi
152	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) hosts.byaddr; fi
153	@if [ ! $(NOPUSH) ]; then echo "pushed hosts"; fi
154
155ethers.time: $(DIR)/ethers
156	@($(STDETHERS) $(DIR)/ethers $(CHKPIPE)) \
157	|(awk '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' $(CHKPIPE)) \
158	| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/ethers.byaddr
159
160	@(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \
161	   $(DIR)/ethers $(CHKPIPE)) | \
162	$(MAKEDBM) - $(YPDBDIR)/$(DOM)/ethers.byname;
163	@touch ethers.time;
164	@echo "updated ethers";
165	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ethers.byname; fi
166	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) ethers.byaddr; fi
167	@if [ ! $(NOPUSH) ]; then echo "pushed ethers"; fi
168
169networks.time: $(DIR)/networks
170	@(sed -e "/^#/d" -e s/#.*$$// $(DIR)/networks $(CHKPIPE)) |( awk \
171	    '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' \
172	    $(CHKPIPE) )| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/networks.byname;
173	@(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \
174	   $(DIR)/networks $(CHKPIPE)) | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/networks.byaddr;
175	@touch networks.time;
176	@echo "updated networks";
177	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) networks.byname; fi
178	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) networks.byaddr; fi
179	@if [ ! $(NOPUSH) ]; then echo "pushed networks"; fi
180
181services.time: $(DIR)/services
182	@(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \
183	    $(DIR)/services $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/services.byname;
184	@(awk 'BEGIN { OFS="\t"; } \
185	$$1 !~ /^#/ { split($$2,pp,"/"); printf("%s/%s %s\n", $$1, pp[2], $$0);\
186		if (seen[$$1] == "") {\
187			printf("%s %s\n", $$1, $$0); seen[$$1]=$$1;} \
188		for (i = 3; i <= NF && $$i !~ /^#/; i++) {\
189			if (seen[$$i] == "") {\
190				printf("%s %s\n", $$i, $$0); seen[$$i]=$$i;} \
191			printf("%s/%s %s\n", $$i, pp[2], $$0)}}' \
192		$(DIR)/services $(CHKPIPE)) | \
193	$(MAKEDBM) $(B) - $(YPDBDIR)/$(DOM)/services.byservicename
194
195	@touch services.time;
196	@echo "updated services";
197	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) services.byname; fi
198	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) services.byservicename; fi
199	@if [ ! $(NOPUSH) ]; then echo "pushed services"; fi
200
201rpc.time: $(DIR)/rpc
202	@(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \
203	    $(DIR)/rpc $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/rpc.bynumber;
204	@touch rpc.time;
205	@echo "updated rpc";
206	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) rpc.bynumber; fi
207	@if [ ! $(NOPUSH) ]; then echo "pushed rpc"; fi
208
209protocols.time: $(DIR)/protocols
210	@(awk 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' \
211	    $(DIR)/protocols $(CHKPIPE)) | $(MAKEDBM) - \
212	    $(YPDBDIR)/$(DOM)/protocols.bynumber;
213
214	@(sed -e "/^#/d" -e s/#.*$$// $(DIR)/protocols $(CHKPIPE)) |( awk \
215	    '{print $$1,$$0; for (i = 3;i <= NF;i++) print $$i, $$0}' \
216	    $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/protocols.byname;
217
218	@touch protocols.time;
219	@echo "updated protocols";
220	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) protocols.byname; fi
221	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) protocols.bynumber; fi
222	@if [ ! $(NOPUSH) ]; then echo "pushed protocols"; fi
223
224netgroup.time: $(DIR)/netgroup
225	@$(MAKEDBM) $(DIR)/netgroup $(YPDBDIR)/$(DOM)/netgroup
226	@($(REVNETGROUP) < $(DIR)/netgroup -u $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/netgroup.byuser
227	@($(REVNETGROUP) < $(DIR)/netgroup -h $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/netgroup.byhost
228	@touch netgroup.time;
229	@echo "updated netgroup";
230	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup; fi
231	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup.byuser; fi
232	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netgroup.byhost; fi
233	@if [ ! $(NOPUSH) ]; then echo "pushed netgroup"; fi
234
235bootparams.time: $(DIR)/bootparams
236	@(sed -e '/^#/d' -e s/#.*$$// -e 's/[	 ][	 ]*$$//' \
237	    -e '/\\$$/s/\\$$/ /' $(DIR)/bootparams $(CHKPIPE))\
238	|( awk '/ $$/ {printf "%s", $$0} !/ $$/ {print}' $(CHKPIPE))\
239	|( sed -e 's/[	 ][	 ]*/ /g' $(CHKPIPE))\
240	| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/bootparams;
241	@touch bootparams.time;
242	@echo "updated bootparams";
243	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) bootparams; fi
244	@if [ ! $(NOPUSH) ]; then echo "pushed bootparams"; fi
245
246aliases.time: $(ALIASES)
247	@cp $(ALIASES) $(YPDBDIR)/$(DOM)/mail.aliases;
248	@/usr/lib/sendmail -bi -oA$(YPDBDIR)/$(DOM)/mail.aliases;
249	$(MKALIAS) $(YPDBDIR)/$(DOM)/mail.aliases $(YPDBDIR)/$(DOM)/mail.byaddr;
250	@rm $(YPDBDIR)/$(DOM)/mail.aliases;
251	@touch aliases.time;
252	@echo "updated aliases";
253	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) mail.aliases; fi
254	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) mail.byaddr; fi
255	@if [ ! $(NOPUSH) ]; then echo "pushed aliases"; fi
256
257netmasks.time: $(DIR)/netmasks
258	$(MAKEDBM) $(DIR)/netmasks $(YPDBDIR)/$(DOM)/netmasks.byaddr;
259	@touch netmasks.time;
260	@echo "updated netmasks";
261	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netmasks.byaddr; fi
262	@if [ ! $(NOPUSH) ]; then echo "pushed netmasks"; fi
263
264
265publickey.time: $(DIR)/publickey
266	@(sed "/^#/d" < $(DIR)/publickey $(CHKPIPE))| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/publickey.byname;
267	@touch publickey.time;
268	@echo "updated publickey";
269	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) publickey.byname; fi
270	@if [ ! $(NOPUSH) ]; then echo "pushed publickey"; fi
271
272netid.time: $(PWDIR)/passwd $(DIR)/group $(DIR)/hosts $(DIR)/netid
273	@$(MKNETID) -q -p $(PWDIR)/passwd -g $(DIR)/group -h $(DIR)/hosts -m $(DIR)/netid > .ypjunk;
274	@$(MAKEDBM) .ypjunk $(YPDBDIR)/$(DOM)/netid.byname;
275	@rm -f .ypjunk;
276	@touch netid.time;
277	@echo "updated netid";
278	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) netid.byname; fi
279	@if [ ! $(NOPUSH) ]; then echo "pushed netid"; fi
280
281# Old way.  Could be restored by PSARC decision.
282#
283#passwd.adjunct.time: $(PWDIR)/security/passwd.adjunct
284#	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/security/passwd.adjunct $(CHKPIPE)) | \
285#		$(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/passwd.adjunct.byname;
286#	@chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.dir;
287#	@chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.pag;
288#	@touch passwd.adjunct.time
289#	@echo "updated passwd.adjunct";
290#	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.adjunct.byname; fi
291#	@if [ ! $(NOPUSH) ]; then echo "pushed passwd.adjunct"; fi
292
293passwd.adjunct.time: $(PWDIR)/security/passwd.adjunct $(PWDIR)/shadow
294	-@if [ -f $(PWDIR)/shadow ]; then \
295		(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; \
296	else \
297		(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/security/passwd.adjunct $(CHKPIPE)) | \
298		$(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/passwd.adjunct.byname; \
299	fi
300	@chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.dir;
301	@chmod 600 $(YPDBDIR)/$(DOM)/passwd.adjunct.byname.pag;
302	@touch passwd.adjunct.time
303	@echo "updated passwd.adjunct";
304	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) passwd.adjunct.byname; fi
305	@if [ ! $(NOPUSH) ]; then echo "pushed passwd.adjunct"; fi
306
307group.adjunct.time: $(PWDIR)/security/group.adjunct
308	@(awk 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }' $(PWDIR)/security/group.adjunct $(CHKPIPE)) | \
309	$(MAKEDBM) -s - $(YPDBDIR)/$(DOM)/group.adjunct.byname;
310	@chmod 600 $(YPDBDIR)/$(DOM)/group.adjunct.byname.dir;
311	@chmod 600 $(YPDBDIR)/$(DOM)/group.adjunct.byname.pag;
312	@touch group.adjunct.time
313	@echo "updated group.adjunct";
314	@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOM) group.adjunct.byname; fi
315	@if [ ! $(NOPUSH) ]; then echo "pushed group.adjunct"; fi
316
317timezone.time:  $(DIR)/timezone
318	-@if [ -f $(DIR)/timezone ]; then \
319		sed -e "/^#/d" -e s/#.*$$// $(DIR)/timezone \
320		| awk '{for (i = 2; i<=NF; i++) print $$i, $$0}' \
321		| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/timezone.byname; \
322		touch timezone.time; \
323		echo "updated timezone"; \
324		if [ ! $(NOPUSH) ]; then \
325			$(YPPUSH) timezone.byname; \
326			echo "pushed timezone"; \
327		else \
328		: ; \
329		fi \
330	else \
331		echo "couldn't find $(DIR)/timezone"; \
332	fi
333
334auto.master.time:  $(DIR)/auto_master
335	-@if [ -f $(DIR)/auto_master ]; then \
336		sed -e "/^#/d" -e s/#.*$$// $(DIR)/auto_master \
337		| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto.master; \
338		touch auto.master.time; \
339		echo "updated auto.master"; \
340		if [ ! $(NOPUSH) ]; then \
341			$(YPPUSH) auto.master; \
342			echo "pushed auto.master"; \
343		else \
344		: ; \
345		fi \
346	else \
347		echo "couldn't find $(DIR)/auto_master"; \
348	fi
349
350auto.home.time:  $(DIR)/auto_home
351	-@if [ -f $(DIR)/auto_home ]; then \
352		sed -e "/^#/d" -e s/#.*$$// $(DIR)/auto_home \
353		| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto.home; \
354		touch auto.home.time; \
355		echo "updated auto.home"; \
356		if [ ! $(NOPUSH) ]; then \
357			$(YPPUSH) auto.home; \
358			echo "pushed auto.home"; \
359		else \
360		: ; \
361		fi \
362	else \
363		echo "couldn't find $(DIR)/auto_home"; \
364	fi
365
366
367auth.attr.time:  $(RBACDIR)/auth_attr
368	-@if [ -f $(RBACDIR)/auth_attr ]; then \
369		sed -e "/^#/d" -e s/#.*$$// $(RBACDIR)/auth_attr \
370		|sed -e '/\\$$/{:l' -e 'N;s/\\\n//;t h' -e ':h' \
371		-e 's/\\$$/\\/;t l' -e } \
372		| (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ \
373		{printf "%s:%s\n", $$1, $$0 }' $(CHKPIPE)) \
374		| $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/auth_attr; \
375		touch auth.attr.time; \
376		echo "updated auth_attr"; \
377		if [ ! $(NOPUSH) ]; then \
378			$(YPPUSH) auth_attr; \
379			echo "pushed auth_attr"; \
380		else \
381		: ; \
382		fi \
383	else \
384		echo "couldn't find $(RBACDIR)/auth_attr"; \
385	fi
386
387exec.attr.time:  $(RBACDIR)/exec_attr
388	-@if [ -f $(RBACDIR)/exec_attr ]; then \
389		sed -e "/^#/d" -e s/#.*$$// $(RBACDIR)/exec_attr \
390		|sed -e '/\\$$/{:l' -e 'N;s/\\\n//;t h' -e ':h' \
391		-e 's/\\$$/\\/;t l' -e } \
392		| (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ \
393		{printf "%s:%s:%s:%s\n", $$1, $$2, $$6, $$0 }' $(CHKPIPE)) \
394		| $(MAKEDBM) -S ":" -E -D 2 - $(YPDBDIR)/$(DOM)/exec_attr; \
395		touch exec.attr.time; \
396		echo "updated exec_attr"; \
397		if [ ! $(NOPUSH) ]; then \
398			$(YPPUSH) exec_attr; \
399			echo "pushed exec_attr"; \
400		else \
401		: ; \
402		fi \
403	else \
404		echo "couldn't find $(RBACDIR)/exec_attr"; \
405	fi
406
407prof.attr.time:  $(RBACDIR)/prof_attr
408	-@if [ -f $(RBACDIR)/prof_attr ]; then \
409		sed -e "/^#/d" -e s/#.*$$// $(RBACDIR)/prof_attr \
410		|sed -e '/\\$$/{:l' -e 'N;s/\\\n//;t h' -e ':h' \
411		-e 's/\\$$/\\/;t l' -e } \
412		| (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ \
413		{printf "%s:%s\n", $$1, $$0 }' $(CHKPIPE)) \
414		| $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/prof_attr; \
415		touch prof.attr.time; \
416		echo "updated prof_attr"; \
417		if [ ! $(NOPUSH) ]; then \
418			$(YPPUSH) prof_attr; \
419			echo "pushed prof_attr"; \
420		else \
421		: ; \
422		fi \
423	else \
424		echo "couldn't find $(RBACDIR)/prof_attr"; \
425	fi
426
427user.attr.time:  $(DIR)/user_attr
428	-@if [ -f $(DIR)/user_attr ]; then \
429		sed -e "/^#/d" -e s/#.*$$// $(DIR)/user_attr \
430		|sed -e '/\\$$/{:l' -e 'N;s/\\\n//;t h' -e ':h' \
431		-e 's/\\$$/\\/;t l' -e } \
432		| (nawk 'BEGIN { FS=":"; OFS=":" } /^[a-zA-Z0-9_]/ \
433		{printf "%s:%s\n", $$1, $$0 }' $(CHKPIPE)) \
434		| $(MAKEDBM) -S ":" -E - $(YPDBDIR)/$(DOM)/user_attr; \
435		touch user.attr.time; \
436		echo "updated user_attr"; \
437		if [ ! $(NOPUSH) ]; then \
438			$(YPPUSH) user_attr; \
439			echo "pushed user_attr"; \
440		else \
441		: ; \
442		fi \
443	else \
444		echo "couldn't find $(DIR)/user_attr"; \
445	fi
446
447audit.user.time:  $(RBACDIR)/audit_user
448	-@if [ -f $(RBACDIR)/audit_user ]; then \
449		sed -e "/^#/d" -e s/#.*$$// $(RBACDIR)/audit_user \
450		|sed -e '/\\$$/{:l' -e 'N;s/\\\n//;t h' -e ':h' \
451		-e 's/\\$$/\\/;t l' -e } \
452		| (nawk 'BEGIN { FS=":"; OFS="\t" } /^[a-zA-Z0-9_]/ \
453		{print $$1, $$0 }' $(CHKPIPE)) \
454		| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/audit_user; \
455		touch audit.user.time; \
456		echo "updated audit_user"; \
457		if [ ! $(NOPUSH) ]; then \
458			$(YPPUSH) audit_user; \
459			echo "pushed audit_user"; \
460		else \
461		: ; \
462		fi \
463	else \
464		echo "couldn't find $(RBACDIR)/audit_user"; \
465	fi
466
467ageing.time:  $(PWDIR)/shadow
468	-@if [ -f $(PWDIR)/shadow ]; then \
469		(awk 'BEGIN {FS=":"; OFS=":"} $$1 !~ /^#/ {printf "%s\t%s:%s:%s:%s:%s:%s:%s:%s\n", $$1,$$1,$$3,$$4,$$5,$$6,$$7,$$8,$$9}' $(PWDIR)/shadow) | $(MAKEDBM) - $(YPDBDIR)/$(DOM)/ageing.byname; \
470		touch ageing.time; \
471		echo "updated ageing"; \
472	else \
473		echo "couldn't find $(PWDIR)/shadow"; \
474	fi
475
476
477
478passwd: passwd.time
479group: group.time
480project: project.time
481hosts: hosts.time
482ipnodes: ipnodes.time
483ethers: ethers.time
484networks: networks.time
485rpc: rpc.time
486services: services.time
487protocols: protocols.time
488netgroup: netgroup.time
489bootparams: bootparams.time
490aliases: aliases.time
491publickey: publickey.time
492netid: netid.time
493passwd.adjunct: passwd.adjunct.time
494group.adjunct: group.adjunct.time
495netmasks: netmasks.time
496timezone: timezone.time
497auto.master: auto.master.time
498auto.home: auto.home.time
499auth.attr:auth.attr.time
500exec.attr:exec.attr.time
501prof.attr:prof.attr.time
502user.attr:user.attr.time
503audit.user:audit.user.time
504$(DIR)/netid:
505$(DIR)/timezone:
506$(DIR)/auto_master:
507$(DIR)/auto_home:
508$(PWDIR)/shadow:
509$(DIR)/auth_attr:
510$(DIR)/exec_attr:
511$(DIR)/prof_attr:
512$(DIR)/user_attr:
513$(DIR)/audit_user:
514ageing: ageing.time
515