Avvio automatico
Quando avviato attraverso lo scheduler di sistema, il programma /usr/sbin/tigercron utilizza il seguente algoritmo:
- nel percorso /var/log/tiger/ è creato un resoconto per ogni modulo di controllo eseguito; esso reca il nome dello script che lo ha generato seguito dall'estensione .out e da un numero progressivo separato da un punto ('.') espressione di un meccanismo di "rotazione dei log" che prevede, di default, fino ad un massimo dieci log consecutivi prima di cancellare il resoconto più vecchio (nota: il numero dei livelli è configurabile attraverso il parametro TigerCron_Log_Keep_Max presente nei file di configurazione /etc/tiger/tigerrc);
- è generato un file di confronto in cui sono evidenziate le differenze tra il resoconto sopra indicato ed uno precedente; quest'ultimo è uno dei due di seguito indicati (sono mutualmente esclusivi) in funzione di quanto specificato nel file di configurazione:
- un precedente resoconto scelto come riferimento e creato manualmente dall'amministratore di sistema nella directory /etc/tiger/templates; questo passaggio è configurabile attraverso il parametro Tiger_Cron_Template del file /etc/tiger/tigerrc ed è disabilitato di default nella configurazione della versione qui esaminata (per maggiori dettagli è possibile consultare il file /usr/share/doc/tiger/README.hostids.gz); per ogni modulo di controllo è possibile predisporre un solo file template ottenibile copiando il resoconto di riferimento dal percorso /var/log/tiger a quello /etc/tiger/template sostituendone l'estensione (ad esempio .out.1) con .template;
- il resoconto cronologicamente precedente; questo passaggio è attivabile attraverso il parametro Tiger_Cron_CheckPrev del file /etc/tiger/tigerrc ed è abilitato di default nella configurazione della versione qui esaminata;
- i file di confronto, infine, è inviato per posta elettronica.
Si riporta di seguito il frammento di codice di /usr/sbin/tigercron corrispondente ai passaggi sopra indicati (i numeri di linea sono riportati per maggior chiarezza):
[... omissis ...] 240 do 241 newfile=$filename.1 242 previousfile=$filename.2 243 templatefile=$filename.template 244 # etctemplatefile=`echo $templatefile | $SED 's/\/var\/log\/tiger\///'` 245 etctemplatefile=`$BASENAME $templatefile` 246 247 if [ "$Tiger_Cron_Template" = "Y" -a -s "$TEMPLATEDIR/$etctemplatefile 247 " ]; then 248 $BASEDIR/util/difflogs $TEMPLATEDIR/$etctemplatefile $newfile 249 elif [ "$Tiger_Cron_Template" = "Y" -a -s "$templatefile" ]; then 250 $BASEDIR/util/difflogs $templatefile $newfile 251 elif [ "$Tiger_Cron_CheckPrev" = "Y" -a -s "$previousfile" ]; then 252 $BASEDIR/util/difflogs $previousfile $newfile 253 else 254 $CAT $newfile 255 fi 256 done >> $WORKDIR/tigcron.diff.$$ [... omissis ...] 273 haveallcmds MAILER && [ "$send" = "Y" ] && { 274 # Mail header (so it does not just say it's root 275 echo "From: \"Tiger automatic auditor at $(hostname)\" \ <$Tiger_Mail_FROM>" 276 echo "To: $Tiger_Mail_RCPT" 277 echo "Subject: Tiger Auditing Report for $(hostname)" 278 echo 279 cat $WORKDIR/tigcron.diff.$$ 280 } | $MAILER $Tiger_Mail_RCPT [... omissis ...]