/usr/lib/tiger/util/getnetgroup is in tiger 1:3.2.3-10.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #!/bin/sh
#
# Extract all host entries from a netgroup(s), recursively expanding
# any sub-netgroups... if multiple netgroups are given, everything
# gets mixed together...
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
targets="$*"
expandgrp()
{
for sub
do
eval "for host in \$grphosts$sub; do echo \$host; done"
eval expandgrp \$grpsubs$sub
done
}
[ "$YPCAT" = "" ] && {
echo "$targets"
exit 0
}
$YPCAT -k netgroup |
$AWK '{
grpname=$1;
hosts="";
grps="";
sep="";
for(i=2;i<=NF;i++){
if($i ~ /^\(/){
split($i, entry, ",");
if(entry[1] != ""){
s = substr(entry[1], 2, length(entry[1])-1);
hosts=hosts sep s;
sep=" ";
}
else if(entry[2] = "" && entry[3] == ""){
hosts=hosts sep "*";
sep=" ";
}
}
else {
grps=grps " " $i;
}
}
if(hosts != "" || grps != ""){
printf("%s %s\n%s\n", grpname, grps, hosts);
}
}' |
{
while read netgroup subgroups
do
read hosts
match=0
for target in $targets
do
[ "$netgroup" = "$target" ] && match=1
done
if [ $match -eq 1 ]; then
targhosts="$targhosts $hosts"
targgroups="$targgroups $subgroups"
else
eval grphosts$netgroup=\"$hosts\"
eval grpsubs$netgroup=\"$subgroups\"
fi
done
for host in $targhosts
do
echo $host
done
expandgrp $targgroups
} |
$SORT -u
|