cambiar valores en una base de datos de OpenLDAP
NYARLATHOTEP El Caos Reptante
nyarlathotep.elcaosreptante en gmail.com
Lun Ene 3 19:58:31 CLST 2005
si, soy yo de nuevo, con este asuntillo sobre ldap...
tengo el siguiente script en perl:
#!/usr/bin/perl
use General; #esta libreria la tengo cargada por defecto, la cual
controla la base de datos
use Net::LDAP;
#variables de dn de root
my $dn = "cn=Manager,dc=misitio,dc=cl";
print "contrasenya del 'Manager'\n";
my $passwd = <stdin>;
#conectamos a ldap
my $ldap = Net::LDAP->new('127.0.0.1:389');
my $mesg = $ldap->bind(dn=>"$dn",password=>$passwd);
#buscamos el user_webmail de la base de datos
my $uw = $dbh->prepare("select user from usuario order by userl");
$uw->execute;
while (my ($user_webmail, $password) = $uw->fetchrow_array){
#cambiamos contrasenya
my $dntc = "uid=$user_webmail,ou=People,dc=misitio,dc=cl";
$chg_pw = $ldap->modify($dntc, replace=>{'userPassword' => $password});
if ($chg_pw->code !=0){
print "no se cambio la contrasenya para $user\n";
} else {
print "se cambio la contrasenya para $user\n";
}
}
y no cambia la contraseña del usuario.
realizo un slapcat y esto (como ejemplo) es lo que obtengo
dn: uid=cleiva1,ou=People,dc=misitio,dc=cl
structuralObjectClass: account
entryUUID: bc99a366-eded-1028-97cc-c916c2664d2c
creatorsName: cn=Manager,dc=misitio,dc=cl
createTimestamp: 20041229140027Z
uid: cleiva1
cn: cleiva1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJHBhZDFQOS52JDY5Ly5GM2pRcUY3YS8=
shadowLastChange: 12389
shadowMax: 99999
shadowWarning: 7
loginShell: /sbin/nologin
uidNumber: 8687
gidNumber: 500
homeDirectory: /home/mailhosting/cleiva1
entryCSN: 20050103171412Z#000021#00#000000
modifiersName: cn=Manager,dc=misitio,dc=cl
modifyTimestamp: 20050103171412Z
Y el archivo slapd.conf lo tengo con la autorizacion para que el
'Manager' pueda escribir sobre la base de datos.
gracias nuevamente
(si alguien quiere enviarme flames, favor de enviarlos a reset en cyberspace.org)
--
Alguien quiere una cuenta en gmail?
avisenme... :)
Más información sobre la lista de distribución Linux