#!/bin/bash # # rpcgssd Start up and shut down RPCSEC GSS daemon # # chkconfig: 345 19 85 # description: Starts user-level daemon that manages RPCSEC GSS contexts \ # for the NFS client. ### BEGIN INIT INFO # Provides: rpcgssd # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts the RPCSEC GSS client daemon # Description: NFS is a popular protocol for file sharing across \ # networks. This deamon manages RPCSEC GSS contexts on the # client used by secure NFS mounts ### END INIT INFO # Source function library. . /etc/init.d/functions # Source networking configuration. [ -f /etc/sysconfig/network ]&& . /etc/sysconfig/network # Check for and source configuration file otherwise set defaults [ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs # Try to use machine credentials by default RETVAL=0 uid=`id | cut -d\( -f1 | cut -d= -f2` prog="rpc.gssd" LOCKFILE=/var/lock/subsys/$prog case "$1" in start|condstart) # Check that networking is up. [ "${NETWORKING}" != "yes" ] && exit 6 [ ! -x /usr/sbin/rpc.gssd ] && exit 5 # Only root can start the service [ $uid -ne 0 ] && exit 4 # Make sure the daemon is not already running. if status $prog > /dev/null ; then exit 0 fi # During condstart need to check again to see # if we are configured to start [ "${SECURE_NFS}" != "yes" ] && exit 6 rm -f $LOCKFILE echo -n $"Starting RPC gssd: " # List of kernel modules to load [ -z "${SECURE_NFS_MODS}" ] && SECURE_NFS_MODS="des rpcsec_gss_krb5" # Make sure the rpc_pipefs filesystem is available /bin/mount -t rpc_pipefs sunrpc /var/lib/nfs/rpc_pipefs > /dev/null 2>&1 [ "${SECURE_NFS_MODS}" != "noload" ] && { [ -x /sbin/lsmod -a -x /sbin/modprobe ] && { for i in ${SECURE_NFS_MODS}; do if ! /sbin/lsmod | grep $i > /dev/null ; then /sbin/modprobe $i || { echo "Error: Unable to load '$i' security module." exit 6; } fi done } } # Start daemon. daemon $prog ${RPCGSSDARGS} RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE ;; stop) # Just exit if not configured [ "${SECURE_NFS}" != "yes" ] && exit 6 # Only root can stop the service [ $uid -ne 0 ] && exit 4 # Stop daemon. echo -n $"Stopping RPC gssd: " killproc $prog RETVAL=$? echo rm -f $LOCKFILE ;; status) status rpc.gssd RETVAL=$? ;; restart|reload|force-reload) $0 stop $0 start RETVAL=$? ;; condrestart|try-restart) if [ -f $LOCKFILE ]; then $0 restart RETVAL=$? fi ;; condstop) if [ -f $LOCKFILE ]; then $0 stop RETVAL=$? fi ;; *) echo $"Usage: $0 {start|stop|restart|force-reload|condstart|condrestart|try-restart|status|condstop}" RETVAL=2 ;; esac exit $RETVAL