778c7b1c1c
equivalent to the old ypserv, except that it doesn't support the -p [port] option to force the server to use a particular port. The server stubs and yp.h header file are auto-generated from the yp.x protocol definition file. The auto-generated XDR routines in libc/yp are also used. The database access code has been broken out into a seperate module so that other NIS utilities (ypxfr in particular) can use it. Note that the old mknetid script is being temporarily moved here; it will be replaced by an mknetid program which will eventually have a home under /usr/src/libexec. (The existing script is actually somewhat broken -- it doesn't handle hosts -- but this isn't a big deal at this point since the netid.byname map is really only useful fopr Secure RPC, which we don't have yet.)
395 lines
12 KiB
Makefile
395 lines
12 KiB
Makefile
#
|
|
# Makefile for the NIS databases
|
|
#
|
|
# $Id: Makefile.yp,v 1.1 1995/12/09 04:33:14 wpaul Exp $
|
|
#
|
|
# This Makefile should only be run on the NIS master server of a domain.
|
|
# All updated maps will be pushed to all NIS slave servers listed in the
|
|
# /var/yp/ypservers file. Please make sure that the hostnames of all
|
|
# NIS servers in your domain are listed in /var/yp/ypservers.
|
|
#
|
|
# This Makefile can be modified to support more NIS maps if desired.
|
|
#
|
|
|
|
# If this machine is an NIS master, comment out this next line so
|
|
# that changes to the NIS maps can be propagated to the slave servers.
|
|
# (By default we assume that we are only serving a small domain with
|
|
# only one server.)
|
|
#
|
|
NOPUSH = "True"
|
|
|
|
# If you want to use a FreeBSD NIS server to serve non-FreeBSD clients
|
|
# (i.e. clients who expect the password field in the passwd maps to be
|
|
# valid) then uncomment this line. This will cause $YPDIR/passwd to
|
|
# be generated with valid password fields. This is insecure: FreeBSD
|
|
# normally only serves the master.passwd maps (which have real encrypted
|
|
# passwords in them) to the superuser on other FreeBSD machines, but
|
|
# non-FreeBSD clients (e.g. SunOS, Solaris (without NIS+), IRIX, HP-UX,
|
|
# etc...) will only work properly in 'unsecure' mode.
|
|
#
|
|
#UNSECURE = "True"
|
|
|
|
# These are commands which this Makefile needs to properly rebuild the
|
|
# NIS databases. Don't change these unless you have a good reason. Also
|
|
# be sure not to place an @ in front of /usr/bin/awk: it isn't necessary
|
|
# and it'll break everything in sight.
|
|
#
|
|
AWK = /usr/bin/awk
|
|
RM = @/bin/rm -f
|
|
RCAT = /bin/cat
|
|
CAT = @$(RCAT)
|
|
|
|
DBLOAD = /usr/sbin/yp_mkdb -m `hostname`
|
|
MKNETID = /usr/libexec/mknetid
|
|
YPPUSH = /usr/bin/yppush
|
|
DOMAIN = `/bin/domainname`
|
|
REVNETGROUP = /usr/libexec/revnetgroup
|
|
|
|
YPSRCDIR = /etc
|
|
YPDIR = /var/yp
|
|
YPMAPDIR = $(YPDIR)/$(DOMAIN)
|
|
|
|
# These are the files from which the NIS databases are built. You may edit
|
|
# these to taste in the event that you wish to keep your NIS source files
|
|
# seperate from your NIS server's actual configuration files. Note that the
|
|
# NIS passwd and master.passwd files are stored in /var/yp: the server's
|
|
# real password database is not used by default. However, you may use
|
|
# the real /etc/passwd and /etc/master.passwd files by:
|
|
#
|
|
#
|
|
# - invoking yppasswdd without the -m option (yppasswdd will use
|
|
# /etc/master.passwd if no alternate master.passwd file is specified
|
|
# and do a 'pwd_mkdb' as needed).
|
|
# - Specifying the location of the master.passwd file using the
|
|
# MASTER_PASSWD variable, i.e.:
|
|
#
|
|
# # make MASTER_PASSWD=/path/to/some/other/master.passwd
|
|
#
|
|
# - (optionally): editing this Makefile to change the default location.
|
|
#
|
|
# To add a user, edit $(YPDIR)/master.passwd and type 'make'. The raw
|
|
# passwd file will be generated from the master.passwd file automagically.
|
|
#
|
|
ETHERS = $(YPSRCDIR)/ethers # ethernet addresses (for rarpd)
|
|
BOOTPARAMS= $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd)
|
|
HOSTS = $(YPSRCDIR)/hosts
|
|
NETWORKS = $(YPSRCDIR)/networks
|
|
PROTOCOLS = $(YPSRCDIR)/protocols
|
|
RPC = $(YPSRCDIR)/rpc
|
|
SERVICES = $(YPSRCDIR)/services
|
|
GROUP = $(YPSRCDIR)/group
|
|
NETGROUP = $(YPSRCDIR)/netgroup
|
|
PASSWD = $(YPDIR)/passwd
|
|
.if !defined(MASTER_PASSWD)
|
|
MASTER = $(YPDIR)/master.passwd
|
|
.else
|
|
MASTER = $(MASTER_PASSWD)
|
|
.endif
|
|
YPSERVERS = $(YPDIR)/ypservers # List of all NIS servers for a domain
|
|
PUBLICKEY = $(YPSRCDIR)/publickey
|
|
|
|
target:
|
|
@if [ ! -d $(DOMAIN) ]; then mkdir $(DOMAIN); fi; \
|
|
cd $(DOMAIN) ; echo "NIS Map update started on `date`" ; \
|
|
make -f ../Makefile all; echo "NIS Map update completed."
|
|
|
|
# If you don't want some of these maps built, feel free to comment
|
|
# them out from this list.
|
|
# Note that we don't build the ethers or boorparams maps by default
|
|
# since /etc/ethers and /etc/bootparams are not likely to be present
|
|
# on all systems.
|
|
#
|
|
|
|
all: master.passwd passwd hosts group networks protocols \
|
|
rpc services servers netid # publickey netgroup ethers bootparam
|
|
|
|
ethers: ethers.byname ethers.byaddr
|
|
bootparam: bootparams
|
|
hosts: hosts.byname hosts.byaddr
|
|
networks: networks.byaddr networks.byname
|
|
protocols: protocols.bynumber protocols.byname
|
|
rpc: rpc.byname rpc.bynumber
|
|
services: services.byname
|
|
passwd: passwd.byname passwd.byuid
|
|
group: group.byname group.bygid
|
|
netgrp: netgroup
|
|
netid: netid.byname
|
|
servers: ypservers
|
|
publickey: publickey.byname
|
|
|
|
master.passwd: master.passwd.byname master.passwd.byuid
|
|
|
|
|
|
ypservers: $(YPSERVERS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(YPSERVERS) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#") print $$0"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(YPSERVERS) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
ethers.byname: $(ETHERS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(ETHERS) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$2"\t"$$0 }' $^ | $(DBLOAD) -i $(ETHERS) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) -i $(ETHERS) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
ethers.byaddr: $(ETHERS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(ETHERS) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$1"\t"$$0 }' $^ | $(DBLOAD) -i $(ETHERS) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
bootparams: $(BOOTPARAMS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(BOOTPARAMS) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$0 }' $^ | $(DBLOAD) -i $(BOOTPARAMS) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
netgroup: $(NETGROUP) netgroup.byhost netgroup.byuser
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(NETGROUP) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
@$(MAKE) -f ../Makefile netid
|
|
|
|
|
|
netgroup.byhost: $(NETGROUP)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(NETGROUP) | $(REVNETGROUP) -h -f $(NETGROUP) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
netgroup.byuser: $(NETGROUP)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(NETGROUP) | $(REVNETGROUP) -u -f $(NETGROUP) | \
|
|
$(AWK) '{ if ($$1 != "" && $$1 != "#" && $$1 != "+") \
|
|
print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
hosts.byname: $(HOSTS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(HOSTS) | \
|
|
$(AWK) '/^[0-9]/ { for (n=2; n<=NF && $$n !~ "#"; n++) \
|
|
print $$n"\t"$$0 }' $^ | $(DBLOAD) -i $(HOSTS) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
@$(MAKE) -f ../Makefile netid
|
|
|
|
hosts.byaddr: $(HOSTS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(HOSTS) | \
|
|
$(AWK) '$$1 !~ "#" { print $$1"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(HOSTS) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
@$(MAKE) -f ../Makefile netid
|
|
|
|
|
|
networks.byname: $(NETWORKS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(NETWORKS) | \
|
|
$(AWK) \
|
|
'$$1 !~ "#" { print $$1"\t"$$0; \
|
|
for (n=3; n<=NF && $$n !~ "#"; n++) \
|
|
print $$n"\t"$$0 \
|
|
}' $^ | $(DBLOAD) -i $(NETWORKS) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
networks.byaddr: $(NETWORKS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(NETWORKS) | \
|
|
$(AWK) '$$1 !~ "#" { print $$2"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(NETWORKS) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
protocols.byname: $(PROTOCOLS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(PROTOCOLS) | \
|
|
$(AWK) \
|
|
'$$1 !~ "#" { print $$1"\t"$$0; \
|
|
for (n=3; n<=NF && $$n !~ "#"; n++) \
|
|
print $$n"\t"$$0 \
|
|
}' $^ | $(DBLOAD) -i $(PROTOCOLS) \
|
|
-o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
protocols.bynumber: $(PROTOCOLS)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(PROTOCOLS) | \
|
|
$(AWK) '$$1 !~ "#" { print $$2"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(PROTOCOLS) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
rpc.byname: $(RPC)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(RPC) | \
|
|
$(AWK) \
|
|
'$$1 !~ "#" { print $$1"\t"$$0; \
|
|
for (n=3; n<=NF && $$n !~ "#"; n++) \
|
|
print $$n"\t"$$0 \
|
|
}' $^ | $(DBLOAD) -i $(RPC) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
rpc.bynumber: $(RPC)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(RPC) | \
|
|
$(AWK) '$$1 !~ "#" { print $$2"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(RPC) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
services.byname: $(SERVICES)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(SERVICES) | \
|
|
$(AWK) \
|
|
'$$1 !~ "#" { if (index($$2,"udp")) { printf("%s/udp",$$1) } \
|
|
else { printf("%s/tcp",$$1) }; print "\t"$$0 \
|
|
}' $^ | $(DBLOAD) -i $(SERVICES) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
publickey.byname: $(PUBLICKEY)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(PUBLICKEY) | \
|
|
$(AWK) '$$1 !~ "#" { print $$1"\t"$$2 }' $^ \
|
|
| $(DBLOAD) -i $(PUBLICKEY) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
$(PASSWD): $(MASTER)
|
|
@echo "Creating new $@ file from $(MASTER)..."
|
|
$(RM) $@
|
|
@if [ ! $(UNSECURE) ]; then \
|
|
$(RCAT) $(MASTER) | \
|
|
$(AWK) -F: '{if ($$1 != "+") \
|
|
print $$1":*:"$$3":"$$4":"$$8":"$$9":"$$10}' $^ \
|
|
> $(PASSWD) ; \
|
|
else $(RCAT) $(MASTER) | \
|
|
$(AWK) -F: '{if ($$1 != "+") \
|
|
print $$1":"$$2":"$$3":"$$4":"$$8":"$$9":"$$10}' $^ \
|
|
> $(PASSWD) ; fi
|
|
|
|
|
|
passwd.byname: $(PASSWD)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(PASSWD) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$1"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(PASSWD) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
passwd.byuid: $(PASSWD)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(PASSWD) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$3"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(PASSWD) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
@$(MAKE) -f ../Makefile netid
|
|
|
|
|
|
group.byname: $(GROUP)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(GROUP) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$1"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(GROUP) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
group.bygid: $(GROUP)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(GROUP) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$3"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(GROUP) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
@$(MAKE) -f ../Makefile netid
|
|
|
|
|
|
netid.byname: $(GROUP) $(PASSWD)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
@$(MKNETID) $(PASSWD) $(GROUP) `basename \`pwd\`` \
|
|
| $(DBLOAD) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
master.passwd.byname: $(MASTER)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(MASTER) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$1"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(MASTER) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|
|
|
|
|
|
master.passwd.byuid: $(MASTER)
|
|
@echo "Updating $@..."
|
|
$(RM) $@
|
|
$(CAT) $(MASTER) | \
|
|
$(AWK) -F: '{ if ($$1 != "+") print $$3"\t"$$0 }' $^ \
|
|
| $(DBLOAD) -i $(MASTER) -o $(YPMAPDIR)/$@ - $@
|
|
@if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
|
|
@if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
|