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
|
#!/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.
#
# Linux/2/gen_export_sets - 12/03/2001
#
# 12/03/2001 jfs Make it export sets that can be understood by check_exports
# this way it can appropiately find errors
#
#-----------------------------------------------------------------------------
#
# For debugging purposes
[ -z "$GREP" ] && GREP=`which grep`
[ -z "$SED" ] && SED=`which sed`
[ -z "$AWK" ] && AWK=`which awk`
[ -z "$WORKDIR" ] && WORKDIR=/tmp
EXPFILE=/etc/exports
EXPFILEW=`echo $EXPFILE | $SED -e 's/^\///' | $SED -e 's/\\//\_/g'`
[ -r $EXPFILE ] && {
$GREP -v '^#' $EXPFILE | {
while read dir acl
do
echo $acl |
$AWK -F ")" '{split($0,array); for (data in array) print $data }' | {
while read hostaccess
do
[ ! -z "$hostaccess" ] && {
domain=`echo $hostaccess | $AWK -F "(" '{print $1}'`
[ ! -z "$domain" ] && access="access=$domain"
[ -z "$domain" ] && access=""
options=`echo $hostaccess | $AWK -F "(" '{print $2}' | $SED -e 's/,/ /g'`
echo $dir $access $options
}
done
}
done
} > $WORKDIR/$EXPFILEW.$$
echo "$EXPFILE" > $WORKDIR/$EXPFILEW.$$.src
echo $WORKDIR/$EXPFILEW.$$
}
|