8379ac2852
note that you can still overflow the args buffer for the ls (and it does that on lamp), but it's better than before.
52 lines
1.2 KiB
Bash
52 lines
1.2 KiB
Bash
#!/bin/sh -
|
|
#
|
|
# @(#)security 5.3 (Berkeley) 5/28/91
|
|
#
|
|
PATH=/sbin:/bin:/usr/bin
|
|
|
|
host=`hostname -s`
|
|
echo "Subject: $host security check output"
|
|
|
|
LOG=/var/log
|
|
TMP=/tmp/_secure.$$
|
|
|
|
umask 027
|
|
|
|
echo "checking setuid files and devices:"
|
|
|
|
# don't have ncheck, but this does the equivalent of the commented out block.
|
|
# note that one of the original problem, the possibility of overrunning
|
|
# the args to ls, is still here...
|
|
|
|
MP=`mount -t ufs | sed 's;/dev/;&r;' | awk '{ print $3 }'`
|
|
set $MP
|
|
ls -lgT `while test $# -ge 1; do
|
|
mount=$1
|
|
shift
|
|
find $mount -xdev -perm -u+s -or -perm -g+s | sort
|
|
done` > $TMP
|
|
|
|
#MP=`mount -t ufs | sed 's;/dev/;&r;' | awk '{ print $1 " " $3 }'`
|
|
#set $MP
|
|
#ls -lgT `while test $# -ge 2; do
|
|
# device=$1
|
|
# shift
|
|
# mount=$1
|
|
# shift
|
|
# ncheck -s $device | sed -e "/:$/d" -e "/\/dev\//d" \
|
|
# -e "s;[^/]*;$mount;" -e "s;//;/;g" | sort
|
|
#done` > $TMP
|
|
|
|
if cmp $LOG/setuid.today $TMP >/dev/null; then :; else
|
|
echo "$host setuid/device diffs:"
|
|
diff $LOG/setuid.today $TMP
|
|
mv $LOG/setuid.today $LOG/setuid.yesterday
|
|
mv $TMP $LOG/setuid.today
|
|
fi
|
|
rm -f $TMP
|
|
|
|
echo ""
|
|
echo ""
|
|
echo "checking for uids of 0:"
|
|
awk 'BEGIN {FS=":"} $3=="0" {print $1,$3}' /etc/master.passwd
|