File: net-snmp-create-v3-user.in

package info (click to toggle)
net-snmp 5.7.3%2Bdfsg-1.7%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 36,644 kB
  • sloc: ansic: 273,409; sh: 18,392; perl: 17,097; makefile: 3,750; xml: 684; python: 495; pascal: 62; sql: 47
file content (168 lines) | stat: -rw-r--r-- 3,664 bytes parent folder | download | duplicates (4)
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#!/bin/sh
#
# $Id$
#
# this shell script is designed to add new SNMPv3 users
# to Net-SNMP config file.

prefix=@prefix@
exec_prefix=@exec_prefix@
includedir=@includedir@
libdir=@libdir@
datarootdir=@datarootdir@
NSC_LDFLAGS="@LDFLAGS@"
NSC_INCLUDEDIR=${includedir}
NSC_LIBDIR=-L${libdir}
NSC_LIBS="@LIBS@"
NSC_AGENTLIBS="@AGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
NSC_PREFIX=$prefix
NSC_EXEC_PREFIX=$exec_prefix
NSC_SRCDIR=@srcdir@
NSC_INCDIR=${NSC_PREFIX}/include
NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent -lnetsnmp"
NSC_BASE_AGENT_LIBS="-lnetsnmpagent -lnetsnmpmibs -lnetsnmp"
NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs"
NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a snmplib/.libs/libnetsnmp.a"

if test "x$NSC_SRCDIR" = "x." ; then
   NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
fi

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
case "$1" in
    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
    *) optarg= ;;
esac

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)
	    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="@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
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