def enable_snmpd(password): system.service("snmpd", "stop") # get old password # if os.path.exists("/tmp/snmpd.conf"): conf = "/tmp/snmpd.conf" else: conf = snmp_conf cmd = "cat %s|grep createUser| grep -v '^#' | awk '{print $4}'" % conf oldpwd = process.pipe(cmd, shell=True).strip() # change existing password if len(oldpwd) > 0: system.service("snmpd", "start") pwd_change_cmd = (("snmpusm -v 3 -u root -n \"\" -l authNoPriv -a " + "SHA -A %s localhost passwd %s %s -x AES") % (oldpwd, oldpwd, password)) process.check_call(pwd_change_cmd, shell=True) # Only reached when no excepion occurs process.call(["rm", "-rf", "/tmp/snmpd.conf"]) system.service("snmpd", "stop") if not any([x for x in open('/etc/snmp/snmpd.conf').readlines() if 'rwuser root' in x]): with open('/etc/snmp/snmpd.conf', 'a') as f: f.write("rwuser root") fs.Config().persist("/etc/snmp/snmpd.conf") cfg = fs.File(snmp_conf) # create user account cfg.write("createUser root SHA %s AES\n" % password) system.service("snmpd", "start") fs.Config().persist(snmp_conf) firewall.open_port(port="161", proto="udp")
def enable_snmpd(password): def change_password(oldpwd): system.service("snmpd", "start") pwd_change_cmd = (("snmpusm -v 3 -u root -n \"\" -l authNoPriv " + "-a SHA -A %s localhost passwd %s %s -x AES") % (oldpwd, oldpwd, password)) process.check_call(pwd_change_cmd, shell=True) # Only reached when no excepion occurs process.call(["rm", "-rf", "/tmp/snmpd.conf"]) # Check for an old password if os.path.exists("/tmp/snmpd.conf"): conf = "/tmp/snmpd.conf" else: conf = snmp_conf cmd = "cat %s | grep createUser | grep -v '^#' | awk '{print $4}'" % conf oldpwd = process.pipe(cmd, shell=True).strip() if len(oldpwd) > 0: change_password(oldpwd) else: system.service("snmpd", "stop") # create user account process.check_call(["net-snmp-create-v3-user", "-A", password, "-a", "SHA", "-x", "AES", "root"]) system.service("snmpd", "start") fs.Config().persist(snmp_dir) firewall.open_port(port="161", proto="udp")