home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- # Actions.
- # Change kmem to anything and mode to 0755 if you don't have a kmem group,
- # or change kmem to anything and mode to 0700 if you don't want normal
- # users to be able to use these utilities.
- MODE=02755 # load, pff
- SYSMODE=02755 # authd, tcpuid, tcpuname, netstatuids
- GROUP=kmem
- INSTALL="install -c"
- PROGINSTALL="$INSTALL -g $GROUP -m $MODE"
- SYSINSTALL="$INSTALL -g $GROUP -m $SYSMODE"
- LIBINSTALL="$INSTALL -m 0444" # really ends up 0644
- MANINSTALL="$INSTALL -m 0444"
-
- # Directories.
- BIN=/usr/local/bin
- ETC=/etc
- LIB=/usr/lib
- INCLUDE=/usr/include
- MAN=/usr/man
-
- # Programs.
- PFF="$BIN"/pff
- LOAD="$BIN"/load
- AUTHD="$ETC"/authd
- TCPUID="$ETC"/tcpuid # must be on same filesystem as authd
- TCPUNAME="$ETC"/tcpuname # ditto
- NETSTATUIDS="$ETC"/netstatuids
- AUTHUSER="$LIB"/libauthuser.a
- AUTHUSERH="$INCLUDE"/authuser.h
-
- # Man pages.
- MPFF="$MAN"/man1/pff.1 # XXX: not used
- MLOAD="$MAN"/man1/load.1
- MAUTHUSER="$MAN"/man3/authuser.3
- MAUTHD="$MAN"/man8/authd.8
- MTCPUID="$MAN"/man8/tcpuid.8
- MTCPUNAME="$MAN"/man8/tcpuname.8
- MNETSTATUIDS="$MAN"/man8/netstatuids.8 # XXX: not used
-
- # Name of port 113 in /etc/services.
- PORTNAME=auth
-
- echo "Each action will be printed before it is run. Press return to proceed."
- echo "Type skip (or anything starting with an s) to skip a step."
- echo "(To see all actions, do something like % yes skip | sh INSTALL.)"
-
- echo "1. Install load and pff."
- echo "! $PROGINSTALL pff $PFF: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$PROGINSTALL" pff "$PFF" ;;
- esac
-
- echo "! $PROGINSTALL load $LOAD: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$PROGINSTALL" load "$LOAD" ;;
- esac
-
- echo "2. Install authd, tcpuid, tcpuname, and netstatuids."
- echo "! $SYSINSTALL authd $AUTHD: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$SYSINSTALL" authd "$AUTHD" ;;
- esac
-
- echo "! rm -f $TCPUID; ln $AUTHD $TCPUID: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) rm -f "$TCPUID"; ln "$AUTHD" "$TCPUID" ;;
- esac
-
- echo "! rm -f $TCPUNAME; ln $AUTHD $TCPUNAME: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) rm -f "$TCPUNAME"; ln "$AUTHD" "$TCPUNAME" ;;
- esac
-
- echo "! $SYSINSTALL netstatuids $NETSTATUIDS: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$SYSINSTALL" netstatuids "$NETSTATUIDS" ;;
- esac
-
- echo "3. Install the authuser library."
- echo "! $LIBINSTALL authuser.h $AUTHUSERH: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$LIBINSTALL" authuser.h "$AUTHUSERH" ;;
- esac
-
- echo "! ar rv $AUTHUSER authuser.o: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) ar rv "$AUTHUSER" authuser.o ;;
- esac
-
- echo "! ranlib $AUTHUSER: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) ranlib "$AUTHUSER" ;;
- esac
-
- echo "! chmod 644 $AUTHUSER: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) chmod 644 "$AUTHUSER" ;;
- esac
-
- echo "4. Make the man pages available."
- echo "! $MANINSTALL authuser.3 $MAUTHUSER: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$MANINSTALL" authuser.3 "$MAUTHUSER" ;;
- esac
-
- echo "! $MANINSTALL load.1 $MLOAD: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$MANINSTALL" load.1 "$MLOAD" ;;
- esac
-
- echo "! $MANINSTALL authd.8 $MAUTHD: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$MANINSTALL" authd.8 "$MAUTHD" ;;
- esac
-
- echo "! $MANINSTALL tcpuid.8 $MTCPUID: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$MANINSTALL" tcpuid.8 "$MTCPUID" ;;
- esac
-
- echo "! $MANINSTALL tcpuname.8 $MTCPUNAME: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) eval "$MANINSTALL" tcpuname.8 "$MTCPUNAME" ;;
- esac
-
- echo "5. Make sure an auth port is in /etc/services."
- echo "Let me glance at /etc/services for you..."
- if grep '^'$PORTNAME'[ ]*113/tcp' /etc/services >/dev/null 2>&1
- then echo "Okay, you have it already. Let's continue."
- else echo "Nope, it's not there."
- echo "Let me check that you don't have a different auth port..."
- if grep '^'$PORTNAME'[ ][ ]*' /etc/services >/dev/null 2>&1
- then echo "Aaack! $PORTNAME is already used in /etc/services. Exiting."
- exit 1
- fi
- echo "! echo $PORTNAME' 113/tcp' >> /etc/services: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) echo "$PORTNAME"' 113/tcp' >> /etc/services ;;
- esac
- fi
-
- echo "6. Enable auth in /etc/inetd.conf."
- echo "Let me glance at /etc/inetd.conf for you..."
- if grep '^'"$PORTNAME"'[ ]' /etc/inetd.conf >/dev/null 2>&1
- then echo "Okay, it's already there. That's it!"
- exit 0
- fi
- if grep 'telnet.*root' /etc/inetd.conf >/dev/null 2>&1
- then echo "It's not there yet. Hmmm, looks like you have a Sun-style inetd."
- echo "! echo $PORTNAME' stream tcp nowait root '$AUTHD' authd' >> /etc/inetd.conf: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) echo "$PORTNAME"' stream tcp nowait root '"$AUTHD"' authd' >> /etc/inetd.conf ;;
- esac
- else echo "It's not there yet."
- echo "! echo $PORTNAME' stream tcp nowait '$AUTHD' authd' >> /etc/inetd.conf: " | tr -d '\012'
- read line; case "$line" in
- s*) echo "[skipped]" ;;
- *) echo "$PORTNAME"' stream tcp nowait '"$AUTHD"' authd' >> /etc/inetd.conf ;;
- esac
- fi
-
- echo "7. Let inetd know about the new service."
- echo "On most machines you have to % kill -HUP nn"
- echo "where nn is the number of the inetd process."
- echo "Here's what ps acugx shows about inetd:"
- ps acugx | sed -n -e 1p -e /inetd/p
- echo "I'll leave this step to you. That's it!"
-
- exit 0
-