Ajout d'un fichier de configuration
This commit is contained in:
parent
bc48b69380
commit
ad99a6a181
4 changed files with 18 additions and 11 deletions
6
add.sh
6
add.sh
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
. suidchecker.conf
|
||||||
|
|
||||||
# On récupère tous les fichiers ayant le bit SUID
|
# On récupère tous les fichiers ayant le bit SUID
|
||||||
fichiers=$(find / -perm -4000 2> /dev/null)
|
fichiers=$(find / -perm -4000 2> /dev/null)
|
||||||
|
|
||||||
|
@ -7,7 +9,7 @@ fichiers=$(find / -perm -4000 2> /dev/null)
|
||||||
for f in $fichiers
|
for f in $fichiers
|
||||||
do
|
do
|
||||||
# S'il n'existe pas dans la base
|
# 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';")" ]
|
chemin='$f';")" ]
|
||||||
then
|
then
|
||||||
# On récupère checksum et taille
|
# On récupère checksum et taille
|
||||||
|
@ -15,7 +17,7 @@ do
|
||||||
taille=$(cksum $f | cut -d' ' -f 2)
|
taille=$(cksum $f | cut -d' ' -f 2)
|
||||||
|
|
||||||
# On insère
|
# On insère
|
||||||
sqlite3 suidchecker.db "INSERT INTO fichier VALUES('$f',
|
sqlite3 $DATABASE "INSERT INTO fichier VALUES('$f',
|
||||||
$checksum, $taille);"
|
$checksum, $taille);"
|
||||||
|
|
||||||
# On indique sur la sortie standard les fichiers installés
|
# On indique sur la sortie standard les fichiers installés
|
||||||
|
|
12
check.sh
12
check.sh
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
. suidchecker.conf
|
||||||
|
|
||||||
# Script de vérification. Récupère la liste des fichiers répertoriés, et
|
# 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
|
# 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")
|
FULL_DATE=$(date -d "@$DATE" "+%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
# Pour chaque fichier de la table fichier
|
# 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
|
do
|
||||||
# Si le fichier existe encore
|
# Si le fichier existe encore
|
||||||
if [ -f $c ]
|
if [ -f $c ]
|
||||||
|
@ -20,10 +22,10 @@ do
|
||||||
taille=$(cksum $c | cut -d' ' -f2)
|
taille=$(cksum $c | cut -d' ' -f2)
|
||||||
|
|
||||||
# Récupère les valeurs d'origine pour comparer
|
# 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';")
|
fichier WHERE chemin='$c';")
|
||||||
|
|
||||||
old_taille=$(sqlite3 suidchecker.db "SELECT taille FROM fichier
|
old_taille=$(sqlite3 $DATABASE "SELECT taille FROM fichier
|
||||||
WHERE chemin='$c';")
|
WHERE chemin='$c';")
|
||||||
|
|
||||||
# Si la taille et le checksum sont inchangés, le status est
|
# Si la taille et le checksum sont inchangés, le status est
|
||||||
|
@ -36,12 +38,12 @@ do
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# On insère les informations dans la base
|
# 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');"
|
'$c','$DATE','$checksum','$taille','$status');"
|
||||||
else
|
else
|
||||||
# Quand le fichier n'existe pas, on indique qu'il est supprimé
|
# Quand le fichier n'existe pas, on indique qu'il est supprimé
|
||||||
status="supprimé"
|
status="supprimé"
|
||||||
sqlite3 suidchecker.db "INSERT INTO
|
sqlite3 $DATABASE "INSERT INTO
|
||||||
controle(chemin,date,status) VALUES('$c',
|
controle(chemin,date,status) VALUES('$c',
|
||||||
'$DATE','$status');"
|
'$DATE','$status');"
|
||||||
fi
|
fi
|
||||||
|
|
10
init.sh
10
init.sh
|
@ -1,10 +1,12 @@
|
||||||
#!/bin/bash
|
#!/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
|
# 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.
|
# 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à
|
# Vérifie que la base n'existe pas déjà
|
||||||
if [ -f suidchecker.db ]
|
if [ -f $DATABASE ]
|
||||||
then
|
then
|
||||||
echo "Le fichier existe déjà." >&2
|
echo "Le fichier existe déjà." >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -25,10 +27,10 @@ echo "Création de la base de données"
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# On lance les commandes sqlite
|
# On lance les commandes sqlite
|
||||||
sqlite3 suidchecker.db \
|
sqlite3 $DATABASE \
|
||||||
"CREATE TABLE fichier(chemin TEXT PRIMARY KEY, checksum INTEGER, taille
|
"CREATE TABLE fichier(chemin TEXT PRIMARY KEY, checksum INTEGER, taille
|
||||||
INTEGER);"
|
INTEGER);"
|
||||||
sqlite3 suidchecker.db "CREATE TABLE controle(
|
sqlite3 $DATABASE "CREATE TABLE controle(
|
||||||
chemin TEXT,
|
chemin TEXT,
|
||||||
date INTEGER,
|
date INTEGER,
|
||||||
checksum INTEGER,
|
checksum INTEGER,
|
||||||
|
@ -55,7 +57,7 @@ do
|
||||||
taille=$(cksum $f | cut -d' ' -f 2)
|
taille=$(cksum $f | cut -d' ' -f 2)
|
||||||
|
|
||||||
# Et on insère le couple chemin, checksum dans la base
|
# 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);"
|
$taille);"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
1
suidchecker.conf
Normal file
1
suidchecker.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DATABASE=suidchecker.db
|
Loading…
Reference in a new issue