Re: Tripwire (correct twhelp.sh)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jeff, Mike, and all,

I would like to apologize for sending an older version of my twhelp.sh
script than intended.  Both Mike and Jeff have offered good alternative
fixes for the version I sent.  To help avoid any further confusion I am
including a known working version of twhelp.sh.  Thank you Mike and Jeff
for your comments.  I am in the process of working on a newer version
that should improve performance, and will post it to the list when
completed.  I will also make note that if you run this script on Solaris
you will need to change line 37 to read:  

correct_type="ascii"

as Solaris evaluates  

eval file $1 | awk '{ print $2 }'

to all lower case output.

Again sorry for the confusion.  Any and all comments are welcome.

----------------------------------------------------------------------


#! /bin/bash
#
# twhelp version 4
#
#############################################################
#                                                           #
# Christopher Cuevas                                        #
# fclcac@nersp.nerdc.ufl.edu                                #
# Nov. 15th 2002                                            #
# Florida Center for Library Automation                     #
#                                                           #
# twhelp will comment out lines from a twpol.txt file when  #
# supplied with a twreport_file and the path to twpol.txt   #
# and create a twpol.txt.fixed file                         #
#                                                           #
# usage: twhelp  twreport_file  path_to_twpol.txt           #
#                                                           #
#############################################################

E_NOARGS=65
E_ARGERROR=66

if [ $# -eq 0 ]
then
  echo "Usage: `basename $0`  twreport_file  path/to/twpol.txt" >&2 
  # Error message to stderr
  exit $E_ARGERROR
fi

# Test for correct file type

type=`eval file $1 | awk '{ print $2 }'`

# "file $1" echos file type...
# then awk removes all but the second field
# the result is fed into the variable "type" and compared to
"correct_type"

correct_type="ASCII"

if [ "$type" != "$correct_type" ]
then
  echo
  echo "This script only works on non executable ascii files."
  echo
fi

cat "$1" | grep Filename: | awk -F: '{ print $2 }' > tmp.fix1

# awk through the twreport file and create a tmp.fix1 
# file with all paths to files that are not on the system

sed 's/\//\\\//g' tmp.fix1 > tmp.fix2

# add a \ in front of the path so sed will comment it out correctly
# output this to tmp.fix2 

cp -p $2 tmp.fix1

# copy twpol.txt over tmp.fix1 so as not to mess with the original
# twpol.txt file.  we were done with that version of tmp.fix1 anyway.

for line in `cat tmp.fix2`
do
  sed "s/.*$line/# &/" "tmp.fix1" > twpol.txt.fixed
  cp twpol.txt.fixed tmp.fix1
done

# comment out lines from twpol.txt(aka tmp.fix1) 
# and create twpol.txt.fixed

rm -rf tmp.fix1
rm -rf tmp.fix2

# clean up the tmp.fix files

exit 0

-------------------------------------------------------------------------


On Thu, 2003-01-23 at 16:14, Mike Vanecek wrote:
> fixed="twpol.txt.fixed"
> fixedtmp="tmp.fixed"
> cp $2 $fixedtmp
> ls -al  $fixedtmp
> for line in `cat tmp.fix2`
> do
> # echo $line
> # sed  "s/.*$line/# &/"  "$2"  > twpol.txt.fixed
> sed  "s/.*$line/# &/"  "$fixedtmp"  > twpol.txt.fixed
> cp twpol.txt.fixed tmp.fixed
> ls -al $fixedtmp
> ls -al $fixed
> # echo $2
> done
> 
> I believe the problem is that 
> 
> sed  "s/.*$line/# &/"  "$2"  > twpol.txt.fixed
> 
> this line overwrote the fixed file everytime and thus the result was
that only
> the last item in tmp.fix2 was recorded. 
> 
> My snipet above illustrates the problem and has a not so pretty fix -
I think?



> Subject: RE: Tripwire
> Date: Fri, 24 Jan 2003 13:23:09 +0800
> From: "Turner, (Resolute Address) Jeff" <jeff.turner@resolute-ltd.com.au>
> To: <psyche-list@redhat.com>
> Reply-To: psyche-list@redhat.com
> 
> I have a redhat server which runs tripwire but was giving me the long list of missing files in every report. After reading this thread I thought it would be a good idea to implement the script written by Chris, BUT I found that as posted it only updated the policy with the LAST line of missing files. 
> 
> The section 
> 
>  for line in `cat tmp.fix2`
>  do
>  sed "s/.*$line/# &/" "$2" > twpol.txt.fixed
>  done
> 
> replaces twpol.txt.fixed each time through the loop. 
> 
> I replaced this with 
> 
> for line in `cat tmp.fix2`
> do
>   echo  "s/.*$line/# &/" >> tmp.fix3
>   # create a list of substitutions for sed to perform
> done
> 
> sed -f tmp.fix3 "$2" > twpol.txt.fixed
> # Run sed commenting out ALL missing files from the list 
> rm -rf tmp.fix3
> 
> I know this could have been done when te tmp.fix2 file was created but this was easier for me to write and as it is a script that will only be run once per machine it didnt seem worth worrying too much about efficiency. 
> 
> I would have used the Perl script also submitted but as it was sent as an attachment and I get the list in digest format I couldn't (easily) get it. 
> 
> I ran the shell script and now my tripwire reports 0 errors !
> 

-- 
          _     _                                       _     _
        o' \,=./ `o                                   o' \,=./ `o
           (o o)                                         (o o)
+-------oo0--(_)--0oo-------------------------------ooO--(_)--Ooo---+
|                                                                   |
| Christopher Cuevas                 fclcac@nersp.nerdc.ufl.edu     |
|                                                                   |
+-------------------------------------------------------------------+
F l o r i d a  C e n t e r  f o r  L i b r a r y  A u t o m a t i o n
|             0ooo                                   ooo0   0ooo    |
+------ooo0---(  )-----------------------------------(  )---(  )----+
       (  )    )/        "Why waste time learning,    \(     )/     
        \(    (/           when ignorance is instantaneous?" - Calvin
         \)                          




-- 
Psyche-list mailing list
Psyche-list@redhat.com
https://listman.redhat.com/mailman/listinfo/psyche-list

[Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

  Powered by Linux