| Listing 1: badgrp Script
 
#!/bin/sh
#
#    badgrp
#
#    Find /etc/passwd entries missing group entries in /etc/group
#
#    Copyright 1994, Lawrence S Reznick -- 94Oct19
PWFILE=/tmp/pw.$$
GRPFILE=/tmp/gp.$$
trap "rm -f $PWFILE $GRPFILE" 1 2 3 15
#
#    If NIS is running, use its maps
#
if ypwhich >/dev/null 2>&1
then
ypcat passwd >$PWFILE
ypcat group >$GRPFILE
else
cat /etc/passwd >$PWFILE
cat /etc/group >$GRPFILE
fi
#
#    Extract a unique list of active accounts' gids
#
for grp in `cut -d: -f4 $PWFILE | sort -nu`
do
grpfmt=`echo :"$grp":`             # Avoid partial matches
match=`egrep $grpfmt $GRPFILE`
test -n "$match" ||
echo Group $grp not in group list, affecting users: \
`egrep $grpfmt $PWFILE | cut -d: -f1`
done
rm -f $PWFILE $GRPFILE
 
 
 
 
 |