def add_user(username, password): print("Adding user %s" % (username,)) process = subprocess.Popen( shlex.split("sudo useradd %s" % (username,)), stderr = subprocess.PIPE) utils.check_exception(process.communicate()[1]) print("Attempting to set password for %s" % (username,)) process = subprocess.Popen( shlex.split(" sudo smbpasswd -a %s" % (username,)), stdin = subprocess.PIPE, stderr = subprocess.PIPE) utils.check_exception(process.communicate((password+"\n"+password).encode()))
def rsync_directories(source, target): process = subprocess.Popen(shlex.split("rsync -vz --delete --info=progress2 %s %s" % (source, target)), stderr = subprocess.PIPE) utils.check_exception(process.communicate()[1])
def remove_user(username): print("Removing user %s" % (username,)) process = subprocess.Popen(shlex.split("sudo userdel %s" % (username,)), stderr = subprocess.PIPE) utils.check_exception(process.communicate()[1])
def add_share(share_name, directory_path, comment, acls, guest_ok = "n"): #acls - tuple in form (username,permission) where permission is "F","R" or "D" # print("sudo net usershare add %s \"%s\" \"%s\" %s guest_ok=%s" % (share_name, directory_path, comment, acls, guest_ok)) process = subprocess.Popen( shlex.split("sudo net usershare add %s \"%s\" \"%s\" %s guest_ok=%s" % (share_name, directory_path, comment, acls, guest_ok))) utils.check_exception(process.communicate()[1])
def unmount_share(mount_directory): process = subprocess.Popen( shlex.split("sudo umount -f -l %s" % (mount_directory,))) utils.check_exception(process.communicate()[1])
def mount_share(server_identifier, share_name, mount_directory, username, password): if not os.path.exists(mount_directory): os.makedirs(mount_directory) process = subprocess.Popen( shlex.split("sudo mount -r -t cifs -o username=\"%s\",password=\"%s\" //%s/%s %s" % (username, password, server_identifier, share_name, mount_directory))) utils.check_exception(process.communicate()[1])
def remove_share(share_name): process = subprocess.Popen( shlex.split("sudo net usershare delete %s" % (share_name,))) utils.check_exception(process.communicate()[1])