#!/usr/bin/perl -w
use strict;
use MIME::Base64;
# set environment
my $domain = shift or die "usage: $0 domain\n";
die "error: illegal domain\n" if ( $domain =~ /.*@.*/ );
# get domain head, filter
my $domain_list = "";
my @domain_tmp = split( /\./, $domain );
my $domain_head = $domain_tmp[0];
for ( my $i = 0; $i < @domain_tmp; $i++ ) {
$domain_list .= "dc=$domain_tmp[$i],";
}
$domain_list =~ s/\,$//g;
my $check_cmd
= "/quark/ldap/bin/ldapsearch -D \"cn=root,dc=cn\" -w s7e3c0r4e2t0 -LLL -b \"$domain_list\" sn apopPassword";
my @check_info = `$check_cmd`;
if ( $#check_info >= 0 ) {
my ( $in, $out ) = ( 0, 0 );
foreach my $line (@check_info) {
chomp($line);
my ( $uname, $upass ) = ( "", "" );
my @tmp;
if ( $line =~ m/dn: / ) {
$in = 1;
}
if ( $in == 1 ) {
$out = 0;
if ( $line =~ m/sn: / ) {
@tmp = split( / +/, $line );
$uname = $tmp[1];
}
if ( $line =~ m/apopPassword: / ) {
@tmp = split( / +/, $line );
$upass = $tmp[1];
$upass = decode_base64($upass);
}
if ( $line =~ /^\s*$/ ) {
( $in, $out ) = ( 0, 1 );
}
}
if ( $in == 1 ) {
if ( $uname ne "" ) {
print "User:$uname ";
}
if ( $upass ne "" ) {
print "Pass:$upass\n";
}
}
if ( $out == 0 ) {
( $uname, $upass ) = ( "", "" );
}
}
}
1;