|
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 |
74476c |
DES|AES|AES128)
|
|
Packit |
fcad23 |
Xalgorithm=$1
|
|
Packit |
fcad23 |
shift
|
|
Packit |
fcad23 |
;;
|
|
Packit Service |
74476c |
des|aes|aes128)
|
|
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 |
74476c |
line="createUser $user $Aalgorithm \"$apassphrase\" $Xalgorithm \"$xpassphrase\""
|
|
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
|