in reply to Fetching groups a user is in
Obviously, I'm a little late to this party, but I stumbled across this while checking to see whether I'd have to (re)invent a wheel to answer a question on the Perl Beginners mailing list. This is the solution I ultimately came up with:
#!/usr/local/bin/perl -l use strict; use warnings; my $user = $ARGV[0]; my @gr_list; my @pw_info; while (@pw_info = getpwent) { if ($pw_info[0] eq $user) { my @gr_info; while (@gr_info = getgrent) { push(@gr_list, $gr_info[2]) if ($gr_info[3] =~ /\b$user\b/); } push(@gr_list, $pw_info[3]); } } print foreach @gr_list;
It's not stunningly terse or clean-looking, at least in my estimation, but it works and doesn't involve calling out to external system utilities.
|
- apotheon
CopyWrite Chad Perrin |
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Fetching groups a user is in
by druud (Sexton) on Dec 22, 2006 at 00:06 UTC | |
by apotheon (Deacon) on Dec 22, 2006 at 03:37 UTC | |
by druud (Sexton) on Dec 22, 2006 at 15:22 UTC | |
by apotheon (Deacon) on Dec 23, 2006 at 07:55 UTC |