#!/bin/sh

# findsuid - Contrle les permissions en criture de tous les fichiers
#   ou programmes SUID, et renvoie les rsultats dans un format agrable
#   et facile  exploiter.

mtime="7"    # dlai (exprim en jours) pour lequel contrler 
             #   les fichiers modifis
verbose=0    # par dfaut, nous serons discrets  propos de ce qui se passe

if [ "$1" = "-v" ] ; then 
  verbose=1 
fi

for match in $(find / -type f -perm +4000 -print) 
do 
  if [ -x $match ] ; then

    owner="$(ls -ld $match | awk '{print $3}')"
    perms="$(ls -ld $match | cut -c5-10 | grep 'w')"

    if [ ! -z $perms ] ; then 
      echo "**** $match (inscriptible et setuid $owner)"  
    elif [ ! -z $(find $match -mtime -$mtime -print) ] ; then 
      echo "**** $match (modifi depuis $mtime jours et setuid $owner)"
    elif [ $verbose -eq 1 ] ; then 
      lastmod="$(ls -ld $match | awk '{print $6, $7, $8}')" 
      echo "  $match (setuid $owner, dernire modification $lastmod)"
    fi 
  fi 
done

exit 0
