 |
» |
|
|
 |
This section lists the following common problems encountered
with NIS and suggests ways to correct them. NIS “Server
Not Responding” Message |  |
Issue the /usr/sbin/ping(1M) command on the NIS client to make sure the
NIS server is up and is reachable on the network. If the ping command fails, either the server is down, or the
network has a problem. If the server is down, reboot it, or wait
for it to come back up. For information on troubleshooting network
problems, see Installing and Administering LAN/9000 Software. To boot your NIS client without waiting for the server to
come up, boot the client in single user mode, set NIS_CLIENT=0 in the /etc/rc.config.d/namsvrs file, then boot your client the rest of the way
up. Issue the domainname command (with no arguments) on both the NIS server
and the NIS client to check whether their domain names are the same.
If they are different, log in as root to the NIS client and issue
the following command to change its domain name: Issue the ps -ef command on the NIS server to check whether ypserv is running. If it is not, follow these steps: In the /etc/rc.config.d/namesvrs file on the NIS server, make sure the following
variables are set: Issue the following command to start up the NIS
server: /sbin/init.d/nis.server start |
Make sure an NIS server exists on the same subnet
as the NIS client. The client broadcasts its bind request, and it
binds to the first server that responds to the request. Broadcasts
do not cross gateways or routers, so the server must be on the same
subnet as the client in order to receive the bind request. If you cannot configure
an NIS server on the same subnet as your NIS clients, see “Bind
an NIS Client to a Server on a Different Subnet”.
A
User Cannot Log In |  |
If the user has recently
changed passwords, ask the user to try logging in with the old password.
If the user can log in using the old password, follow these steps: Issue the ps -ef command on the NIS master server to make sure
the yppasswdd daemon is running. If it is not, issue the following
command to start all the NIS server processes: /sbin/init.d/nis.server start |
Check the cron scripts on the slave servers to make sure transfers
of the passwd map from the master server are frequent enough.
Once per hour is usually frequent enough, but frequent map transfers
may cause too much network traffic. You might want to schedule map
transfers for late at night, and advise users to make their password
changes just before they go home.
Issue the following command on the NIS client to
determine which master server supplies the passwd map to the client: /usr/bin/ypwhich -m passwd |
If the server does not respond, see “NIS “Server
Not Responding” Message”. If the ypwhich command returns the name of the NIS master server, log
in as root to the master server and make sure the user has an entry
in its /etc/passwd file. Then, issue the following commands on the
master server to generate the NIS passwd database from the /etc/passwd file and push it to the NIS slave servers: cd /var/yp /usr/ccs/bin/make passwd |
Issue the domainname command (with no arguments) to make sure the client’s
default domain is the domain served by the NIS master server. If
it is not, log in as root to the NIS client, and issue the following
command to change its domain name: Issue the following command to check whether the
NIS client has an entry in the passwd database on the NIS server to which it is bound: /usr/bin/ypmatch username passwd |
If the client has no entry in the passwd database, issue the following command on the NIS
server to which the client is bound: This command transfers the passwd database from the NIS master server to the server
where you issue the command. If the user’s NIS client is bound to a
slave server, make sure the slave server is listed in the NIS master
server’s ypservers database. Follow these steps: Issue the following command on the NIS client to determine which
server the client is bound to: Log into the NIS master server, and issue the following command: Issue the following command on the NIS master server
to write the contents of the ypservers database to a temporary file: /usr/sbin/makedbm -u ypservers > tempfile |
If the NIS slave server is not listed in tempfile, use a text editor to add it, and then issue the
following command to rebuild the ypservers database: /usr/sbin/makedbm tempfile ypservers |
If you are using NIS compat mode, make sure the
NIS escape entry in the /etc/passwd file on the client does not have
an asterisk in the password field. On HP systems, the NIS escape
entry in the /etc/passwd file should be
“Unknown
Host” Message |  |
Issue the following command
to trace a lookup of the unknown host: /usr/contrib/bin/nsquery hosts hostname |
The trace will indicate which name services (BIND, NIS, NIS+,
or /etc/hosts) were queried and in what order. If your host
is not performing lookups the way you want, see Chapter 6 “Configuring
the Name Service Switch” for instructions on configuring
the Name Service Switch. Issue the following command on the NIS client to
determine which master server supplies the hosts map: /usr/bin/ypwhich -m hosts |
If the server does not respond, see “NIS “Server
Not Responding” Message”. If the ypwhich command returns the name of the NIS master server, log
in as root to the master server and make sure the unknown host is
listed in its /etc/hosts file. Then, issue the following commands on the
master server to generate the NIS hosts database from the /etc/hosts file and push it to the NIS slave servers: cd /var/yp /usr/ccs/bin/make hosts |
Issue the domainname command (with no arguments) to make sure the client’s
default domain is the domain served by the NIS master server. If
it is not, log in as root to the NIS client and issue the following
command to change its domain name: Issue the following command to check whether the
unknown host is listed in the hosts database on the NIS server to which the client
is bound: /usr/bin/ypmatch hostname hosts |
If the host is not listed in the hosts database, issue the following command on the NIS
server to which the client is bound: This command transfers the hosts database from the NIS master server to the server
where you issue the command. If the NIS client is bound to a slave server, make
sure the slave server is listed in the NIS master server’s ypservers database. Follow these steps: Issue the following command on the NIS client to determine which
server the client is bound to: Log in as root to the NIS master server and issue
the following command to change to the directory where the domain
databases reside: On the NIS master server, issue the following command
to write the contents of the ypservers database to a temporary file: /usr/sbin/makedbm -u ypservers > tempfile |
If the NIS slave server is not listed in tempfile, use a text editor to add it, and then issue the
following command to rebuild the ypservers database: /usr/sbin/makedbm tempfile ypservers |
An
NIS Client Cannot Bind to a Server |  |
If NIS commands return any of the following messages, ypcat: can’t bind to an NIS server for domain domainname ypmatch: can’t match key. reason: can’t communicate with ypbind ypwhich: clntudp_create error RPC_PROG_NOT_REGISTERED |
then ypbind is not running on the client. Issue the following
command to start all the NIS client processes: /sbin/init.d/nis.client start |
NIS
Returns Incorrect Information |  |
Issue the following command
on the NIS client to determine which master server supplies the
appropriate NIS map: /usr/bin/ypwhich -m mapname |
If the server does not respond, see “NIS “Server
Not Responding” Message”. Log in as root to the NIS master server, and issue
the following command to check the contents of the appropriate NIS
map: /usr/bin/ypcat -k mapname |
If the map contents are not correct, edit the ASCII file from
which the map is generated. Then issue the following commands to regenerate
the map and push it to the slave servers: cd /var/yp /usr/ccs/bin/make mapname |
Issue the domainname command (with no arguments) to make sure the client’s
default domain is the domain served by the NIS master server. If
it is not, log in as root to the NIS client, and issue the following
command to change its domain name: Issue the following command on the NIS client to
check the contents of the map on the NIS server to which the client
is bound: /usr/bin/ypcat -k mapname |
If the contents are not correct, log in as root to the server
that serves the NIS client, and issue the following command: This command transfers the map from the NIS master server
to the server where you issue the command. If the NIS client is bound to a slave server, make
sure the slave server is listed in the NIS master server’s ypservers database. Follow these steps: Issue the following command on the NIS client to determine which
server the client is bound to: Log in as root to the NIS master server and issue
the following command to change to the directory where the domain
databases reside: On the NIS master server, issue the following command
to write the contents of the ypservers database to a temporary file: /usr/sbin/makedbm -u ypservers > tempfile |
If the NIS slave server is not listed in tempfile, use a text editor to add it, and then issue the
following command to rebuild the ypservers database: /usr/sbin/makedbm tempfile ypservers |
Make sure the slave servers have cron scripts that schedule regular updates of the map.
|