#!/bin/sh # /etc/rc.d/rc.yp # # Start NIS (Network Information Service). NIS provides network-wide # distribution of hostname, username, and other information databases. # After configuring NIS, you will need to uncomment the parts of this # script that you want to run. # # NOTE: for detailed information about setting up NIS, see the # documentation in /usr/doc/yp-tools, /usr/doc/ypbind, # /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO. # Set non-zero to enable yp client functions YP_CLIENT_ENABLE=1 # Set non-zero to enable yp server functions YP_SERVER_ENABLE=0 # If YP_SERVER_ENABLE is set, a non-zero YP_XFRD_ENABLE setting will # enable ypxfrd. YP_XFRD_ENABLE=0 PID_PATH=/var/run yp_start() { if [ $YP_SERVER_ENABLE -ne 0 ]; then # NIS SERVER CONFIGURATION: # If you are the master server for the NIS domain, you must run ypserv to # service clients on the domain. if [ -x /usr/sbin/ypserv ]; then echo "Starting NIS server: /usr/sbin/ypserv" /usr/sbin/ypserv fi # If you are the master server for the NIS domain, you must also run # rpc.yppasswdd, which is the RPC server that lets users change their # passwords. You might also want users to be able to change their shell # and GECOS information, in which case you should comment out the first # yppasswdd line and uncomment out the second one. if [ -x /usr/sbin/rpc.yppasswdd ]; then echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd" /usr/sbin/rpc.yppasswdd # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn" # /usr/sbin/rpc.yppasswdd -e chsh -e chfn fi # If you have NIS slave servers, you might also want to start up # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers. # Alternatively, rpc.ypxfrd can be run out of inetd. if [ $YP_XFRD_ENABLE -ne 0 ]; then if [ -x /usr/sbin/rpc.ypxfrd ]; then echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd" /usr/sbin/rpc.ypxfrd fi fi fi if [ $YP_CLIENT_ENABLE -ne 0 ]; then # NIS CLIENT CONFIGURATION: # If you are a NIS client, all you need to do is run ypbind, which will # broadcast across the network to find a server. Your NIS server might # also be a client. if [ -d /var/yp ]; then echo "Starting NIS services: /usr/sbin/ypbind -broadcast" /usr/sbin/ypbind -broadcast fi fi } yp_stop() { if [ -r ${PID_PATH}/ypbind.pid ]; then echo "Stopping NIS services." kill $(cat ${PID_PATH}/ypbind.pid) fi if [ -r ${PID_PATH}/ypxfrd.pid ]; then echo "Stopping NIS transfer server." kill $(cat ${PID_PATH}/ypxfrd.pid) fi if [ -r ${PID_PATH}/yppasswdd.pid ]; then echo "Stopping NIS master password server." kill $(cat ${PID_PATH}/yppasswdd.pid) fi if [ -r ${PID_PATH}/ypserv.pid ]; then echo "Stopping NIS server." kill $(cat ${PID_PATH}/ypserv.pid) fi } # First, we must setup the NIS domainname. NOTE: this is not necessarily # the same as your DNS domainname, set in /etc/resolv.conf. The NIS # domainname is the name of a domain served by your NIS server. # # If /etc/defaultdomain has not been configured we'll bail out. if [ -r /etc/defaultdomain -a -x /bin/nisdomainname ]; then if [ "$(nisdomainname)" == "(none)" ]; then nisdomainname `cat /etc/defaultdomain` fi else echo "/etc/rc.d/rc.yp: NIS not configured. Hint: set up /etc/defaultdomain." exit 0 fi case "$1" in 'start') yp_start ;; 'stop') yp_stop ;; 'restart') yp_stop yp_start ;; *) echo "usage $0 start|stop|restart" esac # # Done setting up NIS.