Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -T
- use Term::ANSIColor;
- use strict; use warnings;
- $ENV{"PATH"} = "/usr/bin:/bin";
- my $wantedgroup = shift;
- my %groupmembers;
- my $usertext = `getent passwd`;
- my @users = $usertext =~ /^([a-zA-Z0-9_-]+):/gm;
- foreach my $userid (@users)
- {
- my $usergrouptext = `id -Gn $userid`;
- my @grouplist = split(' ',$usergrouptext);
- foreach my $group (@grouplist)
- {
- $groupmembers{$group}->{$userid} = 1;
- }
- }
- if($wantedgroup)
- {
- print_group_members($wantedgroup);
- }
- else
- {
- foreach my $group (sort keys %groupmembers)
- {
- print "group: ";
- print color('bold blue');
- printf "%-40s", $group;
- print color('reset');
- printf "%10s", "members: ";
- print_group_members($group);
- print "\n";
- }
- }
- sub print_group_members
- {
- my ($group) = @_;
- return unless $group;
- foreach my $member (sort keys %{$groupmembers{$group}})
- {
- print color('magenta');
- print "\"",$member,"\" ";
- print color('reset');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement