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

package info (click to toggle)
net-snmp 5.9+dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 36,760 kB
  • sloc: ansic: 283,039; perl: 17,712; sh: 11,887; makefile: 2,705; xml: 663; python: 623; pascal: 62; sql: 47
file content (144 lines) | stat: -rw-r--r-- 3,068 bytes parent folder | download
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