#
# A script to change passwords on cabletron's snmp products. 
#
# Tom Coppeto
# MIT Network Services
# 23 April 1991
#
# $Source: /afs/net.mit.edu/tools/src/crpw/RCS/crpw,v $
# $Author: tom $
# $Header: /afs/net.mit.edu/tools/src/crpw/RCS/crpw,v 1.1 91/04/23 10:59:34 tom Exp Locker: tom $
#
#!/bin/csh -f

set rocommvar = "_private_enterprise_52.1.52.2.1.2.1"
set rwcommvar = "_private_enterprise_52.1.52.2.1.2.2"
set sucommvar = "_private_enterprise_52.1.52.2.1.2.3"
set descvar   = "_mgmt_mib_system_sysDescr_0"
set varfile   = "/mit/snmp/nyser/etc/snmp.variables"

if($#argv != 1) then
	echo "Usage: crpw <repeater>"
	exit 1
endif

if ( ! -r $varfile ) then
        echo -n "attaching snmp... "
        /bin/athena/attach snmp
        if (! -r $varfile) then
                echo "Unable to read SNMP variables file."
                exit 1
        endif
endif

set path      = (/usr/ucb /usr/bin /bin /mit/snmp/nyser/@sys)

set addr = $argv[1]

echo -n "current super user community: "
set comm = ($<)

set descr = `snmpquery -c $comm $addr $descvar | awk '{FS="\t"; print $2}'`

if($status) then
	echo "unable to contact agent (check community)"
	exit 1
endif

echo "changing communities for $addr ($descr)..."

set rocomm = `snmpquery -c $comm $addr $rocommvar | awk '{FS="\t"; print $2}'`
echo -n "read only  [$rocomm]: "
set rocomm = ($<)
if($rocomm != "") then
	snmpset -c $comm $addr $rocommvar $rocomm
	if($status) then
		echo "errors in setting variable... exitting"
		exit 1
	endif
endif

set rwcomm = `snmpquery -c $comm $addr $rwcommvar | awk '{FS="\t"; print $2}'`
echo -n "read write [$rwcomm]: "
set rwcomm = ($<)
if($rwcomm != "") then
	snmpset -c $comm $addr $rwcommvar $rwcomm
	if($status) then
		echo "errors in setting variable... exitting"
		exit 1
	endif
endif

set sucomm = `snmpquery -c $comm $addr $sucommvar | awk '{FS="\t"; print $2}'`
echo -n "super user [$sucomm]: "
set sucomm = ($<)
if($sucomm != "") then
	echo "This will not return after confirmation."
	snmpset -c $comm $addr $sucommvar $sucomm
	if($status) then
		echo "errors in setting variable... exitting"
		exit 1
	endif
endif
