|
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
|