Last active
April 20, 2023 17:29
-
-
Save rarylson/72d1414d6907a4548427 to your computer and use it in GitHub Desktop.
"net-snmp-create-v3-user" script for Ubuntu 14.04 (forgotten by the Ubuntu package mantainers)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# $Id$ | |
# | |
# this shell script is designed to add new SNMPv3 users | |
# to Net-SNMP config file. | |
prefix=/usr | |
exec_prefix=/usr | |
includedir=/usr/include | |
libdir=/usr/lib64 | |
datarootdir=${prefix}/share | |
NSC_LDFLAGS="-Wl,-z,relro -Wl,-z,now" | |
NSC_INCLUDEDIR=${includedir} | |
NSC_LIBDIR=-L${libdir} | |
NSC_LIBS="" | |
NSC_AGENTLIBS=" -Wl,-E -Wl,-rpath,/usr/lib64/perl5/CORE" | |
NSC_PREFIX=$prefix | |
NSC_EXEC_PREFIX=$exec_prefix | |
NSC_SRCDIR=. | |
NSC_INCDIR=${NSC_PREFIX}/include | |
NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent -lnetsnmphelpers -lnetsnmp" | |
NSC_BASE_AGENT_LIBS="-lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs -lnetsnmp" | |
NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs agent/helpers/.libs" | |
NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a agent/helpers/.libs/libnetsnmphelpers.a snmplib/.libs/libnetsnmp.a" | |
if test "x$NSC_SRCDIR" = "x." ; then | |
NSC_SRCDIR="NET-SNMP-SOURCE-DIR" | |
fi | |
if /bin/ps -e | egrep ' snmpd *$' > /dev/null 2>&1 ; then | |
echo "Apparently at least one snmpd demon is already running." | |
echo "You must stop them in order to use this command." | |
exit 1 | |
fi | |
Aalgorithm="MD5" | |
Xalgorithm="DES" | |
token=rwuser | |
while test "x$done" = "x" -a "x$1" != "x" -a "x$usage" != "xyes"; do | |
case "$1" in | |
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; | |
*) optarg= ;; | |
esac | |
unset shifted | |
case $1 in | |
--version|--ver*) | |
echo 5.5 | |
;; | |
--help) | |
usage="yes" | |
;; | |
-A|-a) | |
shift | |
if test "x$1" = "x" ; then | |
echo "You must specify an authentication algorithm or pass phrase" | |
exit 1 | |
fi | |
case $1 in | |
MD5|SHA) | |
Aalgorithm=$1 | |
shift | |
;; | |
md5|sha) | |
Aalgorithm=`echo $1 | tr a-z A-Z` | |
shift | |
;; | |
*) | |
apassphrase=$1 | |
shift | |
;; | |
esac | |
;; | |
-X|-x) | |
shift | |
if test "x$1" = "x" ; then | |
echo "You must specify an encryption algorithm or pass phrase" | |
exit 1 | |
fi | |
case $1 in | |
DES|AES|AES128) | |
Xalgorithm=$1 | |
shift | |
;; | |
des|aes|aes128) | |
Xalgorithm=`echo $1 | tr a-z A-Z` | |
shift | |
;; | |
*) | |
xpassphrase=$1 | |
shift | |
;; | |
esac | |
;; | |
-ro) | |
token="rouser" | |
shift | |
;; | |
-*) | |
echo "unknown suboption to $0: $1" | |
usage=yes | |
done=1 | |
;; | |
*) | |
done=1 | |
;; | |
esac | |
done | |
if test "x$usage" = "xyes"; then | |
echo "" | |
echo "Usage:" | |
echo " net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass]" | |
echo " [-a MD5|SHA] [-x DES|AES] [username]" | |
echo "" | |
exit | |
fi | |
if test "x$1" = "x" ; then | |
prompt=yes | |
echo "Enter a SNMPv3 user name to create: " | |
read user | |
else | |
user=$1 | |
shift | |
fi | |
if test "x$user" = "x" ; then | |
echo "You must specify a user name" | |
exit 1 | |
fi | |
if test "x$apassphrase" = "x" ; then | |
prompt=yes | |
echo "Enter authentication pass-phrase: " | |
read apassphrase | |
fi | |
if test "x$apassphrase" = "x" ; then | |
echo "You must specify an authentication pass-phrase" | |
exit 1 | |
fi | |
if test "x$prompt" = "xyes" -a "x$xpassphrase" = "x" ; then | |
echo "Enter encryption pass-phrase: " | |
echo " [press return to reuse the authentication pass-phrase]" | |
read xpassphrase | |
fi | |
outdir="/var/lib/snmp" | |
outfile="$outdir/snmpd.conf" | |
line="createUser $user $Aalgorithm \"$apassphrase\" $Xalgorithm $xpassphrase" | |
echo "adding the following line to $outfile:" | |
echo " " $line | |
# in case it hasn't ever been started yet, start it. | |
if test ! -d $outdir ; then | |
mkdir $outdir | |
fi | |
if test ! -d $outfile ; then | |
touch $outfile | |
fi | |
echo $line >> $outfile | |
outfile="/etc/snmp/snmpd.conf" | |
line="$token $user" | |
echo "adding the following line to $outfile:" | |
echo " " $line | |
if test ! -d $outfile ; then | |
touch $outfile | |
fi | |
echo $line >> $outfile |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Install
In Ubuntu:
Now, you can run:
This script was based in this pastebin proposed by Wylie (wyl1e).