NIS
stands for Network Information Services. If you intend to have
sendmail support nis
(formerly Yellow Pages) maps, you need to define NIS with a line such
as the following in your Build
m4 file:
APPENDDEF(`confMAPDEF', `-DNIS')
If NIS is defined, the AliasFile option can be
specified as:
OAnis:mail.aliases V8.6
O AliasFile=nis:mail.aliases V8.7 and above (if no service-switch file)
See AliasFile for more details about the
AliasFile option. See ServiceSwitchFile
for a description of the ServiceSwitchFile option
and its effect on nis aliases. Be aware that the
above AliasFile option declaration will override
the lack of an nis entry in the service-switch
file.
NDBM also needs to be defined to allow sendmail
to rebuild its alias files for use by nis:
APPENDDEF(`confMAPDEF', `-DNIS -DNDBM')
For this to work, the path of the alias file needs to contain the
substring:
/yp/
A typical /var/yp/Makefile will contain a line
such as this:
/usr/lib/sendmail -bi -oA$(YPDBDIR)/$(DOM)/mail.aliases
Here, $(YPDBDIR)/ is usually /var/yp/, so the
substring is found. When the substring /yp/ is
found, sendmail augments the
aliases database with two special entries that
are needed by nis:
YP_LAST_MODIFIED
YP_MASTER_NAME
These allow the newly built aliases file to be
successfully distributed for use by nis clients.
Without these entries you will see an error such as the following
when pushing your nis maps:
Status received from ypxfr on nisslave:
Failed - no local order number in map - use -f flag to ypxfr.
The solution here is to rebuild sendmail with
both NDBM and NIS defined.
Defining NIS also causes support to be included for declaring and
using nis-type maps (Section 23.2.2) with the K configuration
command.
Note that defining NIS without also defining NAMED_BIND will cause
delivery to MX records to mysteriously fail.
If you are running a precompiled sendmail
binary, you can use the -d0.1 debugging
command-line switch (-d0.1) to determine if
NIS support is included (if it appears in the list, support is
included).