#!/usr/bin/perl # group_to_cdf: converts group(5) format UNIX group information into character # delimited file expected by Workgroup Manager, for importing into LDAP # leeg 2004-12-15 use strict; ($#ARGV == 1) or die "Usage: $0 \nAborted"; open(INFILE,"<@ARGV[0]") or die "Cannot open @ARGV[0] for reading: $!\nAborted"; open(OUTFILE,">@ARGV[1]") or die "Cannot open @ARGV[1] for writing: $!\nAborted"; select OUTFILE; print "0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Groups 8 dsAttrTypeStandard:RecordName dsAttrTypeStandard:RealName dsAttrTypeStandard:PrimaryGroupID dsAttrTypeStandard:GroupMembership dsAttrTypeStandard:HomeLocOwner dsAttrTypeStandard:HomeDirectory dsAttrTypeStandard:MCXSettings dsAttrTypeStandard:MCXFlags\n"; # Output format is # gname::gid:member1,member2,...:::: # Which leaves the groups lacking full names, but the originals didn't have one while() { chomp; my ($gname,$passwd,$gid,$memlist)=split /:/; print "${gname}::${gid}:${memlist}::::\n"; } close OUTFILE; close INFILE;