Il seguente script permette di modificare un indirizzo email in un albero LDAP:
#!/usr/bin/python import ldap server = "ldap://localhost" base_dn = "dc=domain,dc=net" user_admin = ["cn=admin", "xxx"] search_filter = "objectClass=person" attributes = ["mail"] search_scope = ldap.SCOPE_SUBTREE mod_attribute = ldap.MOD_REPLACE counter = 0 try: # Apertura della connessione con server LDAP e successiva # autenticazione come admin con = ldap.initialize(server) con.protocol_version = ldap.VERSION3 con.simple_bind_s(",".join([user_admin[0], base_dn]), user_admin[1]) # Estrazione dei dati da modificare result_set = con.search_s(",".join(["ou=Users", base_dn]), search_scope, search_filter, attributes) # Iterazione dei risultati estratti for item in result_set: if not item[1] == {}: # Verifica che il dato estratto sia quello da modificare if item[1]["mail"][0].endswith("domain.net"): counter += 1 fields = item[1]["mail"][0].split("@") # Modifica della email dell'utente print "Update email for " + item[0] modify = [(mod_attribute, "mail", "@".join([fields[0], "dominio.it"]) )] con.modify_s(item[0], modify) print "Updated " + str(counter) + " users" except ldap.LDAPError, e: print "Error" print e
Nessun commento:
Posta un commento