summaryrefslogtreecommitdiffstats
path: root/kadmind.init
blob: 458c612e75cfd92674bfd0f84e1cf09b93394e1f (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
#!/bin/bash
#
# kadmind      Start and stop the Kerberos 5 administrative server.
#
# chkconfig:   - 35 65
# description: Kerberos 5 is a trusted third-party authentication system.  \
#	       This script starts and stops the Kerberos 5 administrative \
#              server, which should only be run on the master server for a \
#              realm.
# processname: kadmind
# config: /etc/sysconfig/kadmin
#

# Get config.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Get config.
[ -r /etc/sysconfig/kadmin ] && . /etc/sysconfig/kadmin

# Source function library.
. /etc/init.d/functions
prog="Kerberos 5 Admin Server"
kadmind=/usr/kerberos/sbin/kadmind

RETVAL=0

# Shell functions to cut down on useless shell instances.
start() {
  	if [ ! -f /var/kerberos/krb5kdc/principal ] ; then
	    exit 0
	fi
  	if [ -f /var/kerberos/krb5kdc/kpropd.acl ] ; then
	    exit 0
	else
  	    if [ ! -f /var/kerberos/krb5kdc/kadm5.keytab ] ; then
		echo -n $"Extracting kadm5 Service Keys: "
		/usr/kerberos/sbin/kadmin.local ${KRB5REALM:+-r $KRB5REALM} -q "ktadd -k /var/kerberos/krb5kdc/kadm5.keytab kadmin/admin${KRB5REALM:+@$KRB5REALM} kadmin/changepw${KRB5REALM:+@$KRB5REALM}" && success || failure
		echo
	    fi
	fi
	echo -n $"Starting $prog: "
	daemon ${kadmind} ${KRB5REALM:+-r ${KRB5REALM}} $KADMIND_ARGS
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && touch /var/lock/subsys/kadmin
}
stop() {
	echo -n $"Stopping $prog: "
	killproc ${kadmind}
	RETVAL=$?
	echo
	[ $RETVAL = 0 ] && rm -f /var/lock/subsys/kadmin
}
reload() {
	echo -n $"Reopening $prog log file: "
	killproc ${kadmind} -HUP
	RETVAL=$?
	echo
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	stop
	start
	;;
  status)
	status ${kadmind}
	RETVAL=$?
	;;
  reload)
	reload
	;;
  condrestart)
	if [ -f /var/lock/subsys/kadmin ] ; then
		stop
		start
	fi
	;;
  *)
	echo $"Usage: $0 {start|stop|status|condrestart|reload|restart}"
	RETVAL=1
	;;
esac

exit $RETVAL