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

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