Hi.
This diff makes it possible to only include a range of uid/gid for NIS
password maps. I'm no regex guru but it seems to do the job (inspired
from NetBSD).
Maybe some people can make use of this...
Index: Makefile.yp
===================================================================
RCS file: /cvs/src/usr.sbin/ypserv/ypinit/Makefile.yp,v
retrieving revision 1.13
diff -u -r1.13 Makefile.yp
--- Makefile.yp 1 Nov 2002 23:54:18 -0000 1.13
+++ Makefile.yp 19 Feb 2007 12:22:29 -0000
@@ -14,6 +14,7 @@
MAKEDBM=/usr/sbin/makedbm
SED=/usr/bin/sed
SENDMAIL=/usr/sbin/sendmail
+SORT=/usr/bin/sort
STDHOSTS=/usr/sbin/stdhosts
STDETHERS=/usr/sbin/stdethers
MKALIAS=/usr/sbin/mkalias
@@ -34,33 +35,53 @@
# If you want ypserv to ask DNS for unknown hosts set USEDNS to -b
USEDNS=
+# Only include UID/GID between MIN/MAX range in the maps.
+MINUID=1000
+MAXUID=32765
+MINGID=1000
+MAXGID=32765
+
all: passwd group hosts ethers networks rpc services protocols netid netgroup
amd.home aliases
passwd.time: $(DIR)/master.passwd
[EMAIL PROTECTED] [ -f $(>) ]; then \
if [ ! $(UNSECURE) ]; then \
$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$1, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\
- $(MAKEDBM) - passwd.byname; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$1, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\
+ ${SORT} | $(MAKEDBM) - passwd.byname; \
$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$3, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\
- $(MAKEDBM) - passwd.byuid; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$3, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\
+ ${SORT} | $(MAKEDBM) - passwd.byuid; \
else \
$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$1, $$0 }' - | $(MAKEDBM) - passwd.byname; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$1, $$0 }' - | ${SORT} | \
+ $(MAKEDBM) - passwd.byname; \
$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$3, $$0 }' - | $(MAKEDBM) - passwd.byuid; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$3, $$0 }' - | ${SORT} | \
+ $(MAKEDBM) - passwd.byuid; \
fi; \
$(CAT) $(>) | \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$1, $$0 }' - | $(MAKEDBM-S) - master.passwd.byname; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$1, $$0 }' - | $(MAKEDBM-S) - master.passwd.byname; \
$(CAT) $(>) | \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$3, $$0 }' - | $(MAKEDBM-S) - master.passwd.byuid; \
+ $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (minuid <= $$3 && maxuid >= $$3) \
+ print $$3, $$0 }' - | $(MAKEDBM-S) - master.passwd.byuid; \
$(TOUCH) $(@); \
$(ECHO) "updated passwd"; \
if [ ! $(NOPUSH) ]; then \
@@ -79,12 +100,14 @@
group.time: $(DIR)/group
[EMAIL PROTECTED] [ -f $(>) ]; then \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$1, $$0 }' $(>) | \
- $(MAKEDBM) - group.byname; \
- $(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
- { print $$3, $$0 }' $(>) | \
- $(MAKEDBM) - group.bygid; \
+ $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (mingid <= $$3 && maxgid >= $$3) print $$1, $$0 }' $(>) | \
+ ${SORT} | $(MAKEDBM) - group.byname; \
+ $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \
+ 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
+ { if (mingid <= $$3 && maxgid >= $$3) print $$3, $$0 }' $(>) | \
+ ${SORT} | $(MAKEDBM) - group.bygid; \
$(TOUCH) $(@); \
$(ECHO) "updated group"; \
if [ ! $(NOPUSH) ]; then \
--
Antoine