#!/usr/bin/perl sub spew_users { my($base, $dom) = @_; my($dir); $dir = $base."/".$dom; open(F, "<".$dir."/vpasswd") || die "open"; while() { chomp; @p = split(/:/); $uid = $p[0]; $sn = $p[4]; $pw = $p[1]; $uidn = $p[2]; $gidn = $p[3]; $h = $p[5]; print "dn: uid=$uid,dc=$dom,o=top\n"; print "objectClass: person\n"; print "objectClass: dcObject\n"; print "objectClass: posixAccount\n"; print "uid: $uid\n"; print "dc: $dom\n"; print "sn: $sn\n"; print "cn: $sn\n"; print "userPassword: {crypt}$pw\n"; print "loginShell: /bin/true\n"; print "uidNumber: $uidn\n"; print "gidNumber: $gidn\n"; print "homeDirectory: $h\n"; print "\n"; } close(F); } opendir(D, $ARGV[0]) || die "opendir"; foreach $d (readdir(D)) { next unless ($d ne "." && $d ne ".."); spew_users($ARGV[0], $d); } closedir(D);