Current Path : /usr/sbin/ |
Current File : //usr/sbin/aideinit |
#!/bin/sh # # $Id$ # Copyright 2003 Mike Markley <mike@markley.org> # This script is free for any purpose whatseoever so long as the above # copyright notice remains in place. if [ -f /etc/default/aide ]; then . /etc/default/aide fi # Defaults MAILTO="${MAILTO:-root}" # Options opt_f=0 opt_y=0 opt_c=0 opt_b=0 defaultconfig="/var/lib/aide/aide.conf.autogenerated" if ! [ -x "/usr/bin/aide" ]; then echo >&2 "no /usr/bin/aide found, check your dependencies" exit 1 fi aideinit_usage() { echo "Usage: $0 [options] -- [aide options]" echo " -y|--yes Overwrite output file" echo " -f|--force Force overwrite of database" echo " -c|--config Specify alternate config file" echo " -o|--output Specify alternate output file" echo " -d|--database Specify alternate database file" echo " -b|--background Run in the background" } while [ -n "$1" ]; do case "$1" in -h|--help) aideinit_usage exit 0 ;; -f|--force) opt_f=1 shift ;; -y|--yes) opt_y=1 shift ;; -b|--background) opt_b=1 shift ;; -o|--output) shift [ -z "$1" ] && aideinit_usage && exit 1 outfile=$1 shift ;; -d|--database) shift [ -z "$1" ] && aideinit_usage && exit 1 dbfile=$1 shift ;; -c|--config) opt_c=1 shift [ -z "$1" ] && aideinit_usage && exit 1 config=$1 shift ;; --) shift break 2 ;; *) echo "Unknown option $1 (use -- to delimit aideinit and aide options)" exit ;; esac done if [ -z "$config" ]; then update-aide.conf fi config=${config:-$defaultconfig} if [ ! -f "$config" ]; then echo "$0: $config: file not found" exit 1 fi if [ -z "$outfile" ]; then outfile=$(egrep "^[[:space:]]*database_out=file:" $config | cut -d: -f2) [ -z "$outfile" ] && outfile="/var/lib/aide/aide.db.new" fi if [ -z "$dbfile" ]; then dbfile=$(egrep "^[[:space:]]*database=file:" $config | cut -d: -f2) [ -z "$dbfile" ] && dbfile="/var/lib/aide/aide.db" fi if [ -f $outfile ]; then if [ $opt_y -eq 0 ]; then echo -n "Overwrite existing $outfile [Yn]? " read yn case "$yn" in [Nn]*) exit 0 ;; esac fi fi extraflags="" if [ $opt_b -eq 1 ]; then (aide.wrapper --init $extraflags $@ >/var/log/aide/aideinit.log 2>/var/log/aide/aideinit.errors RET=$? printf "AIDE --init return code %d" "$RET" >> /var/log/aide/aideinit.log if [ "$RET" != "0" ]; then printf "AIDE --init return code %d" "$RET" >> /var/log/aide/aideinit.errors fi if [ -f "$dbfile" -a $opt_f -eq 0 ]; then echo "$dbfile exists and -f was not specified" >> /var/log/aide/aideinit.errors fi if [ "$(< /var/log/aide/aideinit.errors wc -l)" -gt 0 ]; then (echo "AIDE init errors:"; cat /var/log/aide/aideinit.errors) | /usr/bin/mail -s "AIDE initialization problem" $MAILTO else cp -f $outfile $dbfile fi) & exit 0 fi # this is only reached if we run in foreground echo "Running aide --init..." aide.wrapper --init $extraflags $@ RET=$? if [ "$RET" != "0" ]; then echo "AIDE --init return code $RET" >&2 exit $return fi if [ -f "$dbfile" -a $opt_f -eq 0 ]; then echo -n "Overwrite $dbfile [yN]? " read yn case "$yn" in [yY]*) cp -f $outfile $dbfile ;; esac else cp -f $outfile $dbfile fi