From ad99a6a181cf3aebbd2cae7cfab71ed39859ba1a Mon Sep 17 00:00:00 2001 From: Breizh Date: Sun, 14 Jan 2018 17:11:38 +0100 Subject: [PATCH] Ajout d'un fichier de configuration --- add.sh | 6 ++++-- check.sh | 12 +++++++----- init.sh | 10 ++++++---- suidchecker.conf | 1 + 4 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 suidchecker.conf diff --git a/add.sh b/add.sh index 0963479..6513537 100755 --- a/add.sh +++ b/add.sh @@ -1,5 +1,7 @@ #!/bin/bash +. suidchecker.conf + # On récupère tous les fichiers ayant le bit SUID fichiers=$(find / -perm -4000 2> /dev/null) @@ -7,7 +9,7 @@ fichiers=$(find / -perm -4000 2> /dev/null) for f in $fichiers do # S'il n'existe pas dans la base - if [ -z "$(sqlite3 suidchecker.db "SELECT chemin FROM fichier WHERE + if [ -z "$(sqlite3 $DATABASE "SELECT chemin FROM fichier WHERE chemin='$f';")" ] then # On récupère checksum et taille @@ -15,7 +17,7 @@ do taille=$(cksum $f | cut -d' ' -f 2) # On insère - sqlite3 suidchecker.db "INSERT INTO fichier VALUES('$f', + sqlite3 $DATABASE "INSERT INTO fichier VALUES('$f', $checksum, $taille);" # On indique sur la sortie standard les fichiers installés diff --git a/check.sh b/check.sh index ada48a5..ec8ce7a 100755 --- a/check.sh +++ b/check.sh @@ -1,5 +1,7 @@ #!/bin/bash +. suidchecker.conf + # 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 @@ -10,7 +12,7 @@ DATE=$(date +%s) 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;") +for c in $(sqlite3 $DATABASE "SELECT chemin FROM fichier;") do # Si le fichier existe encore if [ -f $c ] @@ -20,10 +22,10 @@ do taille=$(cksum $c | cut -d' ' -f2) # Récupère les valeurs d'origine pour comparer - old_checksum=$(sqlite3 suidchecker.db "SELECT checksum FROM + old_checksum=$(sqlite3 $DATABASE "SELECT checksum FROM fichier WHERE chemin='$c';") - old_taille=$(sqlite3 suidchecker.db "SELECT taille FROM fichier + old_taille=$(sqlite3 $DATABASE "SELECT taille FROM fichier WHERE chemin='$c';") # Si la taille et le checksum sont inchangés, le status est @@ -36,12 +38,12 @@ do fi # On insère les informations dans la base - sqlite3 suidchecker.db "INSERT INTO controle VALUES( + sqlite3 $DATABASE "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 + sqlite3 $DATABASE "INSERT INTO controle(chemin,date,status) VALUES('$c', '$DATE','$status');" fi diff --git a/init.sh b/init.sh index 1bc2e0c..2a7ef57 100755 --- a/init.sh +++ b/init.sh @@ -1,10 +1,12 @@ #!/bin/bash +. suidchecker.conf # Récupération de la conf + # Script d'initialisation de la base de donnée. Crée le fichier s'il n'existe # pas, crée la base de donnée, puis la remplie avec les premières images. # Vérifie que la base n'existe pas déjà -if [ -f suidchecker.db ] +if [ -f $DATABASE ] then echo "Le fichier existe déjà." >&2 exit 1 @@ -25,10 +27,10 @@ echo "Création de la base de données" set -e # On lance les commandes sqlite -sqlite3 suidchecker.db \ +sqlite3 $DATABASE \ "CREATE TABLE fichier(chemin TEXT PRIMARY KEY, checksum INTEGER, taille INTEGER);" -sqlite3 suidchecker.db "CREATE TABLE controle( +sqlite3 $DATABASE "CREATE TABLE controle( chemin TEXT, date INTEGER, checksum INTEGER, @@ -55,7 +57,7 @@ do taille=$(cksum $f | cut -d' ' -f 2) # Et on insère le couple chemin, checksum dans la base - sqlite3 suidchecker.db "INSERT INTO fichier VALUES('$f', $checksum, + sqlite3 $DATABASE "INSERT INTO fichier VALUES('$f', $checksum, $taille);" done diff --git a/suidchecker.conf b/suidchecker.conf new file mode 100644 index 0000000..96ae3dd --- /dev/null +++ b/suidchecker.conf @@ -0,0 +1 @@ +DATABASE=suidchecker.db