use Net::LDAP;
use DBI();
use Encode;
use MIME::Base64;
use SHA;
my $dbh = DBI->connect("DBI:mysql:database=user;host=localhost","admin", "password",{RaiseError => 1});
$ldup = Net::LDAP->new( 'ldap.server.com ' ) or die "$@";
$masg = $ldup->bind ; # an anonymous bind
$masg = $ldup->search( # perform a search
base => "ou=People,dc=test,dc=com",
scope => 'sub',
filter => "(uid=*)",
attrs => ['uid']
);
$masg->code && die $masg->error;
foreach $entry ($masg->entries)
{
$uid="NULL";
$dn=$entry->dn();
foreach $attr ($entry->attributes)
{
if($attr eq uid)
{
$uid=$entry->get_value($attr);
# print "\n".$uid;
}
}
$az=$dbh->prepare("select * from passwd where nom = \"$uid\" ORDER BY stamptime DESC");
$az->execute;
$passwd = $az->fetchrow_hashref;
if ($passwd->{passwd}) {
$sha = new SHA;
$salt = (shift, pack ("H*", shift));
$label = "{SSHA}";
$hash = $sha->hash ($passwd->{passwd} . $salt);
$hashpass = $label. encode_base64 ($hash . $salt, "");
$ldop = Net::LDAP->new( ' ldap.server.com' );
$misg = $ldop->bind( 'cn=directory manager',password => 'password');
$misg = $ldop->modify( $dn, delete => [userPassword] );
$misg = $ldop->modify( $dn, add => { userPassword => $hashpass } );
undef $hashpass;
$misg->code && warn "failed to add entry: ", $misg->error ;
$misg = $ldop->unbind;
print $uid.":".$passwd->{passwd}."\n";
}
}
$mesg = $ldup->unbind; # take down session
Fabrice
2007/12/4, Glenn <glenn@xxxxxxxxxxxxxx>:
Howdy, Guys - I need a shell script that will read a file of user IDs and
passwords and enter the passwords into Fedora Directory. The users are
already in FD; we just need to change all their passwords at once. The file
will be formatted so the user ID is in column one and the password is in
column two. We have about 8,000 users. Any help appreciated. Thanks. -
Glenn.
--
Fedora-directory-users mailing list
Fedora-directory-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-directory-users
-- Fedora-directory-users mailing list Fedora-directory-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-directory-users