Como modificar entradas LDAP desde python

En un server que corre Zenntyal necesitaba cambiar el interprete de comandos que se les habñia asignado a todos los usuarios creados en el LDAP. Para ello me he decidido a usar python (porque es lo que mejor controlo y por el magnífico interprete iPython). El resultado a sido este:

#importamos el módulo LDAP y nos conectados
import ldap
l = ldap.initialize('ldap://localhost')
l.simple_bind('cn=ebox,dc=cajacomun,dc=es','misecreto')

#importamos modlist y creamos el cambio
from ldap import modlist
old = {'loginShell':'/bin/false'}
new = {'loginShell':'/bin/bash'}
cambios = modlist.modifyModlist(old,new)

#buscamos personas y aplicamos el cambio
for person in l.search_s('ou=Users,dc=cajacomun,dc=es',ldap.SCOPE_SUBTREE,'(uid=*)',['loginshell']):
    print person
    l.modify_s(person[0],cambios)

Más info:

Marcar el enlace permanente.

Deja una respuesta