forked from net-snmp/net-snmp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
net-snmp-create-v3-user.in
144 lines (137 loc) · 3 KB
/
net-snmp-create-v3-user.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/bin/sh
#
# $Id$
#
# this shell script is designed to add new SNMPv3 users
# to Net-SNMP config file.
if @PSCMD@ | 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
unset shifted
case $1 in
--version|--ver*)
echo @VERSION@
;;
--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|SHA-512|SHA-384|SHA-256|SHA-224)
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|SHA-512|SHA-384|SHA-256|SHA-224] [-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="@PERSISTENT_DIRECTORY@"
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
prefix="@prefix@"
# Avoid that configure complains that this script ignores @datarootdir@
echo "@datarootdir@" >/dev/null
outfile="@datadir@/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