def checkcon(info): """ Look for the sshd process of the specified user in the specified device. """ user = info.split(',')[0] device = info.split(',')[1] sshd = os.popen("ps -ef | grep %s | grep %s | grep sshd | grep -v \"grep\" | head -n 1" % (device, user), 'r') sshd = sshd.read() if sshd: sshd = sshd.strip().split() else: warning("USER %s not on DEVICE %s --> KICKING OUT!" % (user, device)) return (1) if sshd[5] == "?" and sshd[7] == "sshd:": if sshd[8].strip() == "%s@%s" % (user.strip(), device.strip()): return (0) # Found ssh session else: return (1) # There is no ssh session for the user in the device.
def prinfo(PROCS, usr_name, group_name, nobann, ybann, smtp): """ Print the DEBUG information. """ print " <<<<< DEBUG MODE >>>>> " print "---------------------------------------------------------" print " <<< SMTP DIRECTIVES FROM CONFIG FILE >>>\n" host = smtp[0] port = smtp[1] domain = smtp[2] print ("HOST: %s --> PORT: %d --> DOMAIN: %s" % (host, port, domain)) print "---------------------------------------------------------" print " <<< USER DIRECTIVES FROM CONFIG FILE >>>" for name in usr_name.keys(): print ("USER: %s " % name) tmp = " ".join(usr for usr in usr_name[name]) print ("CONFIGURATION: %s" % tmp) print "---------------------------------------------------------" print " <<< GROUP DIRECTIVES FROM CONFIG FILE >>>" for group in group_name.keys(): print ("GROUP: %s" % group) tmp = " ".join(usr for usr in group_name[group][0]) tmp1 = " ".join(conf for conf in group_name[group][1]) print ("USERS IN GROUP: %s" % tmp) print ("CONFIGURATION: %s" % tmp1) print "---------------------------------------" tmp = " ".join(usr for usr in nobann) print "---------------------------------------------------------" print ("USERS THAT WILL NEVER BE KICKED OUT: %s" % tmp) print "---------------------------------------------------------" print "IDLE USERS: " for info in PROCS.keys(): user = info.split(',')[0] dev = info.split(',')[1] time = PROCS[info][0] print ("USER: %s --> DEVICE: %s --> IDLE TIME: %s" % (user, dev, time)) print "---------------------------------------------------------" print " <<< PROCESSES OF IDLE USERS: >>>\n" for info in PROCS.keys(): user = info.split(',')[0] dev = info.split(',')[1] pro = PROCS[info][1] print ("USER: %s --> DEVICE: %s --> PROCESSES: %s" % (user , dev, pro)) print "---------------------------------------------------------" print "<<< GRACE: USERS THAT WILL (eventually) BE KICKED OUT >>>\n" for info in ybann.keys(): user = info.split(',')[0] dev = info.split(',')[1] gra = ybann[info] print ("USER: %s --> DEVICE: %s --> GRACE MINUTE: %s" % (user, dev, gra)) print "\n#########################################################" print " <<< Sleeping for 60 seconds >>> " print "#########################################################\n"