#!/usr/bin/perl -w # check group membership for each account. use strict; my $name; my $passwd; my $gid; my $members; my %group; my %user; ## read group file while (($name, $passwd, $gid, $members) = getgrent()) { $group{$gid} = $name; foreach (split(/ /, $members)) { $user{$_} .= "$name "; } } ## read passwd file while (($name, $gid) = (getpwent())[0, 3]) { $user{$name} .= "$group{$gid} "; } ## print all users my $count; my $u; my @a; foreach $u (sort keys %user) { $_ = $user{$u}; @a = split; $count = $#a + 1; # uncomment next line to see the groups. # print "$count $u $user{$u}\n"; print "$count $u\n"; } exit(0);