NetBSD/share/examples/veriexecctl/gen_sha1

27 lines
807 B
Bash
Executable File

#!/bin/sh
#
# $NetBSD: gen_sha1,v 1.1 2002/11/23 10:25:04 blymn Exp $
#
# This is a helper script that scans all the file systems for
# executables and generates an entry in the signatures file for
# each one found. The script is probably best run by root and
# will move the old signatures file prior to starting the real work.
#
mv signatures signatures.old
echo "Fingerprinting the system, this may take a while...."
#
find / \( \( -fstype ffs -a ! -iregex '^/proc.*' -a -type f -a \( -perm -0100 -o -perm -0010 -o -perm -0001 \) \) -o -name 'lib*so*' \) -print | while read line
do
echo "Fingerprinting $line"
hash=`sha1 $line | cut -d'=' -f2 | tr -d ' '`
flag=""
if [ ! -x $line ]
then
flag=" FILE"
fi
if [ "${hash}" != "" ]
then
echo "$line sha1 ${hash}${flag}" >> signatures
fi
done