A kind of perl script that i use to change the user password from an sql
database, but It's easy with perl to parse a csv file.
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(a)mail.txwes.edu>:
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(a)redhat.com
https://www.redhat.com/mailman/listinfo/fedora-directory-users