Tom Smith wrote:
>
> Thank Chad (and John) for your input on this. I thought I'd post the
> portion of the script that I was trying to work out to see if there's
> room for improvement. This should work on any *nix system. The format of
> the command is simple: `test.pl username`, where username is a real
> username on the system in question. Here's the script:
>
> test.pl:
> #!/usr/bin/env perl
>
> use strict;
> use warnings;
>
> # Determine which Linux groups the user belongs to.
> open(FILE,'</etc/group') or die "Can't open /etc/group.";
>
> my @memberof;
> while ($_ = <FILE>) {
> if($_ =~ /$ARGV[0]/) {
Say that you have two users 'ron' and 'ronald'. If $ARGV[0] contains 'ron'
then this will get you the group names for *both* 'ron' *and* 'ronald' (and
any other group names where the string 'ron' is found.)
> my @groups = split(/:/,$_);
> push(@memberof,$groups[0]);
> }
> }
>
> close FILE;
>
> print "[EMAIL PROTECTED]";
>
>
> So is there a better way to do this, or perhaps a cleaner way?
Since you are only reading from /etc/group you are not picking up the primary
group stored in /etc/passwd.
John
--
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order. -- Larry Wall
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>