#!/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