def main(): global HOST, CREDS, LP parser = optparse.OptionParser("rodc.py [options] <host>") sambaopts = options.SambaOptions(parser) versionopts = options.VersionOptions(parser) credopts = options.CredentialsOptions(parser) subunitopts = SubunitOptions(parser) parser.add_option_group(sambaopts) parser.add_option_group(versionopts) parser.add_option_group(credopts) parser.add_option_group(subunitopts) opts, args = parser.parse_args() LP = sambaopts.get_loadparm() CREDS = credopts.get_credentials(LP) try: HOST = args[0] except IndexError: parser.print_usage() sys.exit(1) if "://" not in HOST: if os.path.isfile(HOST): HOST = "tdb://%s" % HOST else: HOST = "ldap://%s" % HOST TestProgram(module=__name__, opts=subunitopts)
def __init__(self, dc_fqdn=None): self.parser = optparse.OptionParser('GPO Applier') self.sambaopts = options.SambaOptions(self.parser) self.credopts = options.CredentialsOptions(self.parser) self.lp = self.sambaopts.get_loadparm() self.creds = self.credopts.get_credentials(self.lp, fallback_machine=True) self.selected_dc = self.set_dc(dc_fqdn)
def init(): # This needs to happen before the class definition, and we put it # in a function to keep the namespace clean. global LP, CREDS, SERVER, REALM, COLOUR_TEXT, subunitopts, FILTER parser = optparse.OptionParser( "python3 ldap_spn.py <server> [options]") sambaopts = options.SambaOptions(parser) parser.add_option_group(sambaopts) # use command line creds if available credopts = options.CredentialsOptions(parser) parser.add_option_group(credopts) subunitopts = SubunitOptions(parser) parser.add_option_group(subunitopts) parser.add_option('--colour', action="store_true", help="use colour text", default=sys.stdout.isatty()) parser.add_option('--filter', help="only run tests matching this regex") opts, args = parser.parse_args() if len(args) != 1: parser.print_usage() sys.exit(1) LP = sambaopts.get_loadparm() CREDS = credopts.get_credentials(LP) SERVER = args[0] REALM = CREDS.get_realm() COLOUR_TEXT = opts.colour FILTER = opts.filter
def main(): global RODC, RWDC, CREDS, LP parser = optparse.OptionParser( "rodc_rwdc.py [options] <rodc host> <rwdc host>") sambaopts = options.SambaOptions(parser) versionopts = options.VersionOptions(parser) credopts = options.CredentialsOptions(parser) subunitopts = SubunitOptions(parser) parser.add_option_group(sambaopts) parser.add_option_group(versionopts) parser.add_option_group(credopts) parser.add_option_group(subunitopts) opts, args = parser.parse_args() LP = sambaopts.get_loadparm() CREDS = credopts.get_credentials(LP) CREDS.set_gensec_features(CREDS.get_gensec_features() | gensec.FEATURE_SEAL) try: RODC, RWDC = args except ValueError: parser.print_usage() sys.exit(1) set_auto_replication(RWDC, True) try: TestProgram(module=__name__, opts=subunitopts) finally: set_auto_replication(RWDC, True)
def main(): global LP, CREDS, SERVER, REALM parser = optparse.OptionParser( "python3 ldap_upn_sam_account_name.py <server> [options]") sambaopts = options.SambaOptions(parser) parser.add_option_group(sambaopts) # use command line creds if available credopts = options.CredentialsOptions(parser) parser.add_option_group(credopts) subunitopts = SubunitOptions(parser) parser.add_option_group(subunitopts) opts, args = parser.parse_args() if len(args) != 1: parser.print_usage() sys.exit(1) LP = sambaopts.get_loadparm() CREDS = credopts.get_credentials(LP) SERVER = args[0] REALM = CREDS.get_realm() TestProgram(module=__name__, opts=subunitopts)
def _get_smb_connection(self, service='SysVol'): # Create options like if we were using command line parser = optparse.OptionParser() sambaopts = options.SambaOptions(parser) # Samba options parm = sambaopts.get_loadparm() s3_lp = s3param.get_context() s3_lp.load(parm.configfile) # Build credentials from credential options creds = Credentials() # Credentials need username and realm to be not empty strings to work creds.set_username('NOTEMPTY') creds.set_realm('NOTEMPTY') # Connect to SMB using kerberos creds.set_kerberos_state(MUST_USE_KERBEROS) # Create connection conn = libsmb.Conn(self._get_server_name(), service, lp=parm, creds=creds, sign=False) return conn
raise e finally: self.qlock.release() def delete(self, sql, params=()): cur = self.qlock.acquire() cur = self.db.cursor() cur.execute(sql, params) self.db.commit() cur.close() return parser = optparse.OptionParser("wipeuser [options]") sambaopts = options.SambaOptions(parser) parser.add_option_group(sambaopts) parser.add_option("--username", type="string", metavar="USERNAME", help="User to wipe") opts, args = parser.parse_args() if len(args) != 0: parser.print_help() sys.exit(1) lp = sambaopts.get_loadparm() username = opts.username
def __init__(self, prog=None): self.parser = optparse.OptionParser(prog) self.sambaopts = options.SambaOptions(self.parser) self.lp = self.sambaopts.get_loadparm()
if f['attrib'] & 0x00000010: # MS-FSCC FILE_ATTRIBUTE_DIRECTORY download_files(conn, win_path_join(remote_path, f['name']), os.path.join(local_path, f['name'])) else: # Download the file fname = os.path.join(local_path, f['name']) rname = win_path_join(remote_path, f['name']) open(fname, 'w').write(conn.loadfile(rname)) os.utime(fname, (time(), f['mtime'])) if __name__ == '__main__': parse = argparse.ArgumentParser(description='Sysvol replication tool') parse.add_argument('server', help='FQDN of server to replicate sysvol from') args = parse.parse_args() parser = optparse.OptionParser() lp = getopt.SambaOptions(parser).get_loadparm() creds = getopt.CredentialsOptions(parser).get_credentials(lp, fallback_machine=True) conn = smb.SMB(args.server, 'sysvol', lp=lp, creds=creds) gpo_versions = '%s/%s' % (lp.get('path', 'sysvol'), 'versions.tdb') if os.path.isfile(gpo_versions): vers_f = tdb.open(gpo_versions) else: vers_f = tdb.Tdb(gpo_versions, 0, tdb.DEFAULT, os.O_CREAT|os.O_RDWR) gpo_path = win_path_join(lp.get('realm').lower(), 'Policies') gpos = [x['name'] for x in conn.list(gpo_path)] for gpo in gpos: s_gpo_path = win_path_join(gpo_path, gpo) # Check if the version has changed fname = win_path_join(s_gpo_path, 'GPT.INI')