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

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