diff --git a/check.sh b/check.sh index 213d23a..ada48a5 100755 --- a/check.sh +++ b/check.sh @@ -3,36 +3,49 @@ # 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 +# Défini la date de vérification, au format epoch DATE=$(date +%s) + +# Défini la date de vérification à utiliser dans les logs FULL_DATE=$(date -d "@$DATE" "+%Y-%m-%d %H:%M:%S") +# Pour chaque fichier de la table fichier for c in $(sqlite3 suidchecker.db "SELECT chemin FROM fichier;") do + # Si le fichier existe encore if [ -f $c ] then + # Récupère son checksum et sa taille checksum=$(cksum $c | cut -d' ' -f1) taille=$(cksum $c | cut -d' ' -f2) - + + # Récupère les valeurs d'origine pour comparer old_checksum=$(sqlite3 suidchecker.db "SELECT checksum FROM fichier WHERE chemin='$c';") old_taille=$(sqlite3 suidchecker.db "SELECT taille FROM fichier WHERE chemin='$c';") + # Si la taille et le checksum sont inchangés, le status est + # mis à identique, sinon à modifié if [ $checksum -eq $old_checksum -a $taille -eq $old_taille ] then status="identique" else status="modifié" fi + + # On insère les informations dans la base sqlite3 suidchecker.db "INSERT INTO controle VALUES( '$c','$DATE','$checksum','$taille','$status');" else + # Quand le fichier n'existe pas, on indique qu'il est supprimé status="supprimé" sqlite3 suidchecker.db "INSERT INTO controle(chemin,date,status) VALUES('$c', '$DATE','$status');" fi - echo -e "$FULL_DATE $c $status" + # Affichage des logs sur la sortie standard + echo "$FULL_DATE $c $status" done