1 #!/bin/sh 2 # 3 # $NetBSD: skeyaudit.sh,v 1.3 2000/07/07 15:19:09 mjl Exp $ 4 # 5 # This script will look thru the skeykeys file for 6 # people with sequence numbers less than LOWLIMIT=12 7 # and send them an e-mail reminder to use skeyinit soon 8 # 9 10 AWK=/usr/bin/awk 11 GREP=/usr/bin/grep 12 ECHO=/bin/echo 13 KEYDB=/etc/skeykeys 14 LOWLIMIT=12 15 ADMIN=root 16 SUBJECT="Reminder: Run skeyinit" 17 HOST=`/bin/hostname` 18 19 20 if [ "$1" != "" ] 21 then 22 LOWLIMIT=$1 23 fi 24 25 26 # an skeykeys entry looks like 27 # jsw 0076 la13079 ba20a75528de9d3a 28 # #oot md5 0005 aspa26398 9432d570ff4421f0 Jul 07,2000 01:36:43 29 # mjl sha1 0099 alpha2 459a5dac23d20a90 Jul 07,2000 02:14:17 30 # the sequence number is the second (or third) entry 31 # 32 33 SKEYS=`$AWK '/^#/ {next} {if($2 ~ /^[0-9]+$/) print $1,$2,$3; else print $1,$3,$4; }' $KEYDB` 34 35 set -- ${SKEYS} 36 37 while [ "X$1" != "X" ]; do 38 USER=$1 39 SEQ=$2 40 KEY=$3 41 shift 3 42 echo "$USER -- $SEQ -- $KEY" 43 if [ $SEQ -lt $LOWLIMIT ]; then 44 if [ $SEQ -lt 3 ]; then 45 SUBJECT="IMPORTANT action required" 46 fi 47 ( 48 $ECHO "You are nearing the end of your current S/Key sequence for account $i" 49 $ECHO "on system $HOST." 50 $ECHO "" 51 $ECHO "Your S/key sequence number is now $SEQ. When it reaches zero you" 52 $ECHO "will no longer be able to use S/Key to login into the system. " 53 $ECHO " " 54 $ECHO "Use \"skeyinit -s\" to reinitialize your sequence number." 55 $ECHO "" 56 ) | /usr/bin/Mail -s "$SUBJECT" $USER $ADMIN 57 fi 58 done 59