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
|
#!/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/flogit - 06/14/93
#
#-----------------------------------------------------------------------------
suidfile="$1"
devfile="$2"
linkfile="$3"
wdirfile="$4"
nouserfile="$5"
nogroupfile="$6"
getpermit()
{
$LS $LSLINK $LSGROUP -ld "$1" |
$AWK '{
printf("%s %s ", $3, $4);
for(i=2;i<11;i++)
if(substr($1, i, 1) == "-")
printf("0 ");
else
printf("1 ");
printf("\n");
}'
}
while read file
do
if [ "x$Tiger_FSScan_Devs" != 'xN' -a \( -b "$file" -o -c "$file" \) ]; then
echo "$file" >> $devfile
elif [ "x$Tiger_FSScan_Links" != 'xN' -a -h "$file" ]; then
echo "$file" >> $linkfile
elif [ "x$Tiger_FSScan_Setuid" != 'xN' -a \( -u "$file" -a -f "$file" \) ]; then
echo "$file" >> $suidfile
fi
if [ "x$Tiger_FSScan_WDIR" != 'xN' ]; then
if [ "x$Tiger_FSScan_Unowned" != 'xN' ]; then
getpermit "$file" | {
read owner group ur uw ux gr gw gx or ow ox
[ ! -h "$file" -a -d "$file" -a "$ow" = '1' ] && {
echo "$file" >> $wdirfile
}
case "$owner" in
[0-9]*) echo "$file" >> $nouserfile
esac
case "$group" in
[0-9]*) echo "$file" >> $nogroupfile
esac
}
elif [ -d "$file" ]; then
getpermit "$file" | {
read owner group ur uw ux gr gw gx or ow ox
[ ! -h "$file" -a -d "$file" -a "$ow" = '1' ] && {
echo "$file" >> $wdirfile
}
}
fi
elif [ "x$Tiger_FSScan_Unowned" != 'xN' ]; then
getpermit "$file" | {
read owner group ur uw ux gr gw gx or ow ox
case "$owner" in
[0-9]*) echo "$file" >> $nouserfile
esac
case "$group" in
[0-9]*) echo "$file" >> $nogroupfile
esac
}
fi
done
|