Preparing the Makefile
After checking the source files and copying them into the source file directory, you now need to convert those source files into the ndbm format maps that the NIS service uses. This is done automatically for you by ypinit when called on the master server, as explained in the next section, "How to Set Up the Master Server With ypinit".
The ypinit script calls the program make, which uses the Makefile located in the /var/yp directory. A default Makefile is provided for you in the /var/yp directory and contains the commands needed to transform the source files into the desired ndbm format maps.
You can use the default Makefile as it is, or modify it if you want. (If you do modify the default Makefile, be sure to first copy and store the original default Makefile in case you need it for future use.) You might need to make one or more of the following modifications to the Makefile:
Nondefault maps
If you have created your own non-default source files and want to convert them to NIS maps, you must add those source files to the Makefile.
DIR value. If you want the Makefile to use source files stored in some directory other than /etc, as explained in "Source Files Directory", you must change the value of DIR in the Makefile to the directory that you want to use. When changing this value in the Makefile, do not indent the line.
PWDIR value
If you want the Makefile to use passwd, shadow, and/or adjunct source files stored in some directory other than /etc, you must change the value of PWDIR in the Makefile to the directory that you want to use. When changing this value in the Makefile, do not indent the line.
Domain name resolver
If you want the NIS server to use the domain name resolver for machines not in the current domain, comment out the Makefile line B=, and uncomment (activate) the line B= -b.
The function of the Makefile is to create the appropriate NIS maps for each of the databases listed under all. After passing through makedbm the data is collected in two files, mapname.dir and mapname.pag. Both files are in the /var/yp/domainname directory on the master server.
The Makefile builds passwd maps from the /PWDIR/passwd, /PWDIR/shadow, and /PWDIR/security/passwd.adjunct files, as appropriate.
How to Set Up the Master Server With ypinit
The ypinit script sets up master and slave servers and clients to use NIS. It also initially runs make to create the maps on the master server.
To use ypinit to build a fresh set of NIS maps on the master server, do the following.
Setting up the master server using ypinit
Become superuser on the master server.
Copy the contents of the nsswitch.files file to the nsswitch.conf file.
# cp /etc/nsswitch.files /etc/nsswitch.conf
Edit the /etc/hosts or /etc/inet/ipnodes file to add the name and IP address of each of the NIS servers.
Build new maps on the master server.
# /usr/sbin/ypinit -m
When ypinit prompts for a list of other machines to become NIS slave servers, type the name of the server you are working on, along with the names of your NIS slave servers.
When ypinit asks whether you want the procedure to terminate at the first nonfatal error or continue despite nonfatal errors, type y.
When you choose y, ypinit exits upon encountering the first problem; you can then fix it and restart ypinit. This is recommended if you are running ypinit for the first time. If you prefer to continue, you can try to manually fix all problems that occur, and then restart ypinit.
Note - A nonfatal error can appear when some of the map files are not present. This is not an error that affects the functionality of NIS. You might need to add maps manually if they were not created automatically. Refer to "Default NIS Maps" for a description of all default NIS maps.
ypinit asks whether the existing files in the /var/yp/domainname directory can be destroyed.
This message is displayed only if NIS has been previously installed.
After ypinit has constructed the list of servers, it invokes make.
This program uses the instructions contained in the Makefile (either the default one or the one you modified) located in /var/yp. The make command cleans any remaining comment lines from the files you designated. It also runs makedbm on the files, creating the appropriate maps and establishing the name of the master server for each map.
If the map or maps being pushed by the Makefile correspond to a domain other than the one returned by the command domainname on the master, you can make sure that they are pushed to the correct domain by starting make in the ypinit shell script with a proper identification of the variable DOM, as follows:
# make DOM=domainname password
This pushes the password map to the intended domain, instead of the domain to which the master belongs.
To enable NIS as the naming service, type the following.
# cp /etc/nsswitch.nis /etc/nsswitch.conf
This replaces the current switch file with the default NIS-oriented switch file. You can edit this file as necessary.
Master Supporting Multiple NIS Domains
Normally, an NIS master server supports only one NIS domain. However, if you are using a master server to support multiple domains, you must slightly modify the steps, as described in the previous section, when setting up the server to serve the additional domains.
Run the domainname command on the server. The domain name returned by the command is the server's default domain. The steps described in the previous section will work properly for setting up service for that domain. To configure service for any other domain, you must modify the ypinit shell script as follows.
# make DOM=correct-domain passwd
correct-domain is the name of the other domain that you are setting up service for, and passwd is the make target. This command pushes the passwd map to the intended domain, instead of the domain to which the master belongs.
Starting NIS Service on the Master Server
Now that the master maps are created, you can start the NIS daemons on the master server and begin service. To do this, you have to start ypserv on the server and run ypbind. When a client requests information from the server, ypserv is the daemon that answers information requests from clients after looking them up in the NIS maps.
There are two ways that NIS service can be started on a server:
By automatically invoking the /usr/lib/netsvc/yp/ypstart script during the boot process
Starting NIS Service Automatically
After the NIS master server has been configured by running ypinit, ypstart is automatically invoked to start up ypserve when the machine is booted. See "How to Set Up the Master Server With ypinit".
Starting and Stopping NIS From the Command Line
To begin NIS service from the command line, run the ypstart script.
# /usr/lib/netsvc/yp/ypstart
Note - Because there is a slight delay before ypserv is ready to respond to calls after startup, you should issue a three to five second sleep after ypstart when calling it from inside a program or script.
To stop NIS service, run the ypstop script.
# /usr/lib/netsvc/yp/ypstop