Ajout d'un fichier de configuration

This commit is contained in:
Breizh 2018-01-14 17:11:38 +01:00
parent bc48b69380
commit ad99a6a181
4 changed files with 18 additions and 11 deletions

6
add.sh
View File

@ -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

View File

@ -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

10
init.sh
View File

@ -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

1
suidchecker.conf Normal file
View File

@ -0,0 +1 @@
DATABASE=suidchecker.db