diff options
Diffstat (limited to 'abs/mv-core/MythVantage-config/myth_user_call.py')
-rwxr-xr-x | abs/mv-core/MythVantage-config/myth_user_call.py | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/abs/mv-core/MythVantage-config/myth_user_call.py b/abs/mv-core/MythVantage-config/myth_user_call.py deleted file mode 100755 index 63915a4..0000000 --- a/abs/mv-core/MythVantage-config/myth_user_call.py +++ /dev/null @@ -1,159 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -#Wrapper script to manage USERNAME accounts + web security -# myth_USERNAME_all -c add -u USERNAME -# myth_USERNAME_all -c delete -u USERNAME -# myth_USERNAME_all -c pass -u USERNAME -p pass -# myth_USERNAME_all -c web -u USERNAME -p pass - -import pexpect, sys, time -import os, re, getopt -import mv_common - - - - -def chroot_check(): - if not INIT_CHECK : - return False - cmd = '''ps -p 1 -o comm=''' - init = mv_common.runcmd_output(cmd).strip() - if init == "runit": - return False - else: - return True - - -def store_commands(full_call): - file_name = "/root/myth_user_call.out" - try: - f = open(file_name,'a') - except: - print "%s could not be opened" % file_name - sys.exit(1) - f.write(full_call) - f.write("\n") - f.close() - try: - os.chmod(600,file_name) - except: - pass - - -def add_user(username,full_call): - if chroot_check() : - print "calling myth_call_user in chroot to add user" - store_commands(full_call) - else: - print "Adding user %s" %username - cmd = '''useradd -m -s /bin/bash %s -G audio,video,optical,storage,users''' %username - mv_common.runcmd(cmd) - cmd = ''' usermod -a -G mythtv %s ''' %username - - -def del_user(username,full_call): - if chroot_check() : - print "calling myth_call_user in chroot to del user" - store_commands(full_call) - else: - print "Removing user %s" %username - cmd = '''userdel %s ''' %username - mv_common.runcmd(cmd) - - -def pass_change(username,password,full_call) : - if chroot_check() : - print "calling myth_call_user in chroot to change password" - store_commands(full_call) - else: - print "changing password for %s" %username - passwd = pexpect.spawn("/usr/bin/passwd %s" % username) - - for repeat in (1, 2): - passwd.expect("password: ") - passwd.sendline(password) - time.sleep(0.1) - -def web_security(username,password) : - file_name = "/etc/lighttpd/lighttpd.user" - file_contents = '' - if os.path.exists(file_name): - try: - f = open(file_name,'r') - file_contents = f.readlines() - except: - print " couldn't read %s" % file_name - try: - f = open(file_name,'w') - except: - print "%s could not be opened for writing" % file_name - return - - for line in file_contents: - if not re.search(username, line): - f.write(line) - line = "%s:%s" %(username, password) - f.write(line) - f.write("\n") - f.close() - - -def usage (): - print "Valid options are:" - print " -c (add|delete|pass|web)" - print " -u USERNAME" - print " -p password" - sys.exit(0) - -def main(argv): - global INIT_CHECK - full_call = "" - INIT_CHECK = True - try: - opts, args = getopt.getopt(argv, 'c:u:p:ih' ) - except getopt.GetoptError, why: - print why - usage() - print "exception happened" - sys.exit(2) - - for opt, arg in opts: - if opt in ("-h", "--help"): - usage() - sys.exit(0) - elif opt in ("-c") : - module = arg - full_call += ''' -c %s ''' %re.escape(arg) - elif opt in ("-u") : - username = arg - full_call += ''' -u %s ''' %re.escape(arg) - elif opt in ("-p") : - password = arg - full_call += ''' -p %s ''' %re.escape(arg) - elif opt in ("-i") : - INIT_CHECK = False - full_call += ''' -i ''' - try: - username - except: - usage() - - if module == "add": - add_user(username,full_call) - elif module == "delete": - del_user(username,full_call) - elif module == "pass": - try: - password - except: - print "needs a password" - usage() - pass_change(username,password,full_call) - elif module == "web": - web_security(username,password) - else: - usage() - -if __name__ == "__main__": - main(sys.argv[1:]) - |