diff --git a/check.sh b/check.sh new file mode 100755 index 0000000..213d23a --- /dev/null +++ b/check.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Script de vérification. Récupère la liste des fichiers répertoriés, et +# vérifie leur état, en fonction de leur taille et leur somme de contrôle + +DATE=$(date +%s) +FULL_DATE=$(date -d "@$DATE" "+%Y-%m-%d %H:%M:%S") + +for c in $(sqlite3 suidchecker.db "SELECT chemin FROM fichier;") +do + if [ -f $c ] + then + checksum=$(cksum $c | cut -d' ' -f1) + taille=$(cksum $c | cut -d' ' -f2) + + old_checksum=$(sqlite3 suidchecker.db "SELECT checksum FROM + fichier WHERE chemin='$c';") + + old_taille=$(sqlite3 suidchecker.db "SELECT taille FROM fichier + WHERE chemin='$c';") + + if [ $checksum -eq $old_checksum -a $taille -eq $old_taille ] + then + status="identique" + else + status="modifié" + fi + sqlite3 suidchecker.db "INSERT INTO controle VALUES( + '$c','$DATE','$checksum','$taille','$status');" + else + status="supprimé" + sqlite3 suidchecker.db "INSERT INTO + controle(chemin,date,status) VALUES('$c', + '$DATE','$status');" + fi + + echo -e "$FULL_DATE $c $status" +done diff --git a/init.sh b/init.sh index 9b52610..5d23513 100755 --- a/init.sh +++ b/init.sh @@ -32,6 +32,7 @@ sqlite3 suidchecker.db "CREATE TABLE controle( chemin TEXT, date INTEGER, checksum INTEGER, + taille INTEGER, status TEXT, FOREIGN KEY(chemin) REFERENCES fichier(chemin), PRIMARY KEY(chemin,date)