Blame net-snmp-create-v3-user.in.dir-fix

Packit e74e66
#!/bin/sh
Packit e74e66
#
Packit e74e66
# $Id$
Packit e74e66
#
Packit e74e66
# this shell script is designed to add new SNMPv3 users
Packit e74e66
# to Net-SNMP config file.
Packit e74e66
Packit e74e66
if @PSCMD@ | egrep ' snmpd *$' > /dev/null 2>&1 ; then
Packit e74e66
    echo "Apparently at least one snmpd demon is already running."
Packit e74e66
    echo "You must stop them in order to use this command."
Packit e74e66
    exit 1
Packit e74e66
fi
Packit e74e66
Packit e74e66
Aalgorithm="MD5"
Packit e74e66
Xalgorithm="DES"
Packit e74e66
token=rwuser
Packit e74e66
Packit e74e66
while test "x$done" = "x" -a "x$1" != "x" -a "x$usage" != "xyes"; do
Packit e74e66
case "$1" in
Packit e74e66
    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
Packit e74e66
    *) optarg= ;;
Packit e74e66
esac
Packit e74e66
Packit e74e66
unset shifted
Packit e74e66
case $1 in
Packit e74e66
    --version|--ver*)
Packit e74e66
      echo @VERSION@
Packit e74e66
      ;;
Packit e74e66
    --help)
Packit e74e66
      usage="yes"
Packit e74e66
      ;;
Packit e74e66
Packit e74e66
    -A|-a)
Packit e74e66
	shift
Packit e74e66
	if test "x$1" = "x" ; then
Packit e74e66
	    echo "You must specify an authentication algorithm or pass phrase"
Packit e74e66
	    exit 1
Packit e74e66
	fi
Packit e74e66
        case $1 in
Packit e74e66
            MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224)
Packit e74e66
	    Aalgorithm=$1
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
            md5|sha)
Packit e74e66
	    Aalgorithm=`echo $1 | tr a-z A-Z`
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
            *)
Packit e74e66
	    apassphrase=$1
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
        esac
Packit e74e66
        ;;
Packit e74e66
    -X|-x)
Packit e74e66
	shift
Packit e74e66
	if test "x$1" = "x" ; then
Packit e74e66
	    echo "You must specify an encryption algorithm or pass phrase"
Packit e74e66
	    exit 1
Packit e74e66
	fi
Packit e74e66
        case $1 in
Packit e74e66
            DES|AES|AES128)
Packit e74e66
	    Xalgorithm=$1
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
            des|aes|aes128)
Packit e74e66
	    Xalgorithm=`echo $1 | tr a-z A-Z`
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
            *)
Packit e74e66
	    xpassphrase=$1
Packit e74e66
	    shift
Packit e74e66
	    ;;
Packit e74e66
	esac
Packit e74e66
	;;
Packit e74e66
    -ro)
Packit e74e66
        token="rouser"
Packit e74e66
	shift
Packit e74e66
	;;
Packit e74e66
    -*)
Packit e74e66
	echo "unknown suboption to $0: $1"
Packit e74e66
	usage=yes
Packit e74e66
	done=1
Packit e74e66
	;;
Packit e74e66
    *)
Packit e74e66
        done=1
Packit e74e66
        ;;
Packit e74e66
    esac
Packit e74e66
done
Packit e74e66
Packit e74e66
if test "x$usage" = "xyes"; then
Packit e74e66
    echo ""
Packit e74e66
    echo "Usage:"
Packit e74e66
    echo "  net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass]"
Packit e74e66
    echo "                          [-a MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224] [-x DES|AES] [username]"
Packit e74e66
    echo ""
Packit e74e66
    exit
Packit e74e66
fi
Packit e74e66
Packit e74e66
if test "x$1" = "x" ; then
Packit e74e66
    prompt=yes
Packit e74e66
    echo "Enter a SNMPv3 user name to create: "
Packit e74e66
    read user
Packit e74e66
else
Packit e74e66
    user=$1
Packit e74e66
    shift
Packit e74e66
fi
Packit e74e66
if test "x$user" = "x" ; then
Packit e74e66
    echo "You must specify a user name"
Packit e74e66
    exit 1
Packit e74e66
fi
Packit e74e66
if test "x$apassphrase" = "x" ; then
Packit e74e66
    prompt=yes
Packit e74e66
    echo "Enter authentication pass-phrase: "
Packit e74e66
    read apassphrase
Packit e74e66
fi
Packit e74e66
if test "x$apassphrase" = "x" ; then
Packit e74e66
    echo "You must specify an authentication pass-phrase"
Packit e74e66
    exit 1
Packit e74e66
fi
Packit e74e66
    if test "x$prompt" = "xyes" -a "x$xpassphrase" = "x" ; then
Packit e74e66
    echo "Enter encryption pass-phrase: "
Packit e74e66
    echo "  [press return to reuse the authentication pass-phrase]"
Packit e74e66
    read xpassphrase
Packit e74e66
fi
Packit e74e66
outdir="@PERSISTENT_DIRECTORY@"
Packit e74e66
outfile="$outdir/snmpd.conf"
Packit e74e66
line="createUser $user $Aalgorithm \"$apassphrase\" $Xalgorithm \"$xpassphrase\""
Packit e74e66
echo "adding the following line to $outfile:"
Packit e74e66
echo "  " $line
Packit e74e66
# in case it hasn't ever been started yet, start it.
Packit e74e66
if test ! -d $outdir ; then
Packit e74e66
    mkdir $outdir
Packit e74e66
fi
Packit e74e66
if test ! -d $outfile ; then
Packit e74e66
    touch $outfile
Packit e74e66
fi
Packit e74e66
echo $line >> $outfile
Packit e74e66
prefix="@prefix@"
Packit e74e66
datarootdir="@datarootdir@"
Packit e74e66
outfile="@datadir@/snmp/snmpd.conf"
Packit e74e66
line="$token $user"
Packit e74e66
echo "adding the following line to $outfile:"
Packit e74e66
echo "  " $line
Packit e74e66
if test ! -d $outfile ; then
Packit e74e66
    touch $outfile
Packit e74e66
fi
Packit e74e66
echo $line >> $outfile