#!/usr/bin/perl -T -I/h/COE/lib -U #- The -U flag is to force /usr/bin/groups #- The -w flag is dropped to mask the warnings from -U use strict; use Coe; my $VERSION="1.1.4.1"; if (@ARGV == 0) { print "Usage: COE_get_group_data {-n groupname}|{-g gid}|{-u user}\n"; exit; } my $groupid="dummy"; my $groupname="dummy"; my $groups; my $username="dummy"; my $uscope="local"; my $arg1; my $i; my $osdat; my $OSDAT; my @gid; my @groups; while (@ARGV > 0 ){ $arg1=cleanString(shift,1); if ("$arg1" eq "-h") { print "HELP\n"; exit; } elsif ("$arg1" eq "-H") { print "HELP\n"; exit; } elsif ("$arg1" eq "--help") { print "HELP\n"; exit; } elsif ("$arg1" eq "-V") { print "VERSION: $VERSION\n"; exit; } elsif ("$arg1" eq "--version") { print "VERSION: $VERSION\n"; exit; } elsif ("$arg1" eq "-n") { $groupname=cleanString(shift,3); } elsif ("$arg1" eq "-g") { $groupid=cleanString(shift,1); } elsif ("$arg1" eq "-u") { $username=cleanString(shift,3); } else { print "HELP\n"; exit; } } # get the GIDS $i=0; $osdat="/etc/group"; if ("$groupname" ne "dummy") { $OSDAT=readFile($osdat); while (<$OSDAT>) { if (/^$groupname:/) { $gid[$i++]=$_; }} close $OSDAT; } elsif ("$groupid" ne "dummy") { $OSDAT=readFile($osdat); while (<$OSDAT>) { if (/.*:.*:$groupid:/) { $gid[$i++]=$_; }} close $OSDAT; } elsif ("$username" ne "dummy") { $_=coeExec "/usr/bin/groups $username"; # output is -> username : g1 g2 g3 @groups=split(":"); $_=$groups[1]; @groups=split(); foreach (@groups) { #print "$_\n"; $groupname=cleanString($_); $OSDAT=readFile($osdat); while (<$OSDAT>) { if (/^$groupname:/) { $gid[$i++]=$_; }} close $OSDAT; } } foreach (@gid) { print "$_"; } |