summaryrefslogtreecommitdiff
path: root/source/n/yptools/rc.yp
blob: eda9634e4f5b067892fabd74649f51f971f9a8ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/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.