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
|
#!/bin/sh
#
# tiger - A UN*X security checking system
# Copyright (C) 1993 Douglas Lee Schales, David K. Hess, David R. Safford
#
# Please see the file `COPYING' for the complete copyright notice.
#
# util/getfs-amd - 04/27/93
#
# 04/27/93 dls Support map files in files or in NIS.
#
#-----------------------------------------------------------------------------
#
haveallof()
{
retval=0
what=$1
shift
for file
do
eval cmd=\$$file
[ ! -n "$cmd" ] && {
echo "--CONFIG-- Don't have all required $what (missing $file)"
retval=1
}
done
return $retval
}
$AWK '{
if($2 == "/")
print $2, $0;
else {
n=split($2, path, "/");
print path[n], $0;
}
}' |
$SORT > $WORKDIR/gfsa1.$$
{
if [ -f "$AUTOHOMEMAP" ]; then
$AWK 'BEGIN {LINE=""; }
/\\$/ {LINE=LINE " " substr($0, 1, length($0)-1); }
!/\\$/ {print LINE $0; LINE=""; }
END { if(LINE != "") print LINE; }
' $AUTOHOMEMAP
else
$YPCAT -k $AUTOHOMEMAP 2>/dev/null
fi
} |
$SED -e 's/^\([^ ]*\).*rhost:=\([^;]*\).*$/\1 \2/' |
$SORT > $WORKDIR/gfsa2.$$
if [ -s $WORKDIR/gfsa2.$$ ]; then
$JOIN -a1 -j 1 -o 1.2 1.3 2.2 $WORKDIR/gfsa1.$$ $WORKDIR/gfsa2.$$ |
while read user dir location
do
echo $user $dir ${location:=$HOSTNAME}
done |
$SORT
else
#
# Something went wrong... nothing in the map, so
# we'll just use the standard method.
$BASEDIR/util/getfs-std
fi
$RM -f $WORKDIR/gfsa1.$$ $WORKDIR/gfsa2.$$
#
exit 0
#
exit 0
#
exit 0
|