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