Gestion des erreurs, find, commentaires
This commit is contained in:
parent
7f35db0cea
commit
d5a3ce9b1f
1 changed files with 30 additions and 8 deletions
38
init.sh
38
init.sh
|
@ -1,24 +1,46 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 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, les tables, les relations.
|
# 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 suidchecker.db ]
|
||||||
then
|
then
|
||||||
echo "La base de données existe déjà !" 2>&1
|
echo "Le fichier existe déjà." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "CREATE TABLE fichier(
|
# Vérifie qu'on est bien en root
|
||||||
chemin TEXT PRIMARY KEY,
|
if [ $(id -u) -ne 0 ]
|
||||||
cksum INTEGER
|
then
|
||||||
);" | sqlite3 suidchecker.db
|
echo "Ce script doit être executé en root" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "CREATE TABLE controle(
|
# Création de la base de données
|
||||||
|
echo "Création de la base de données"
|
||||||
|
|
||||||
|
# Le flag e interdit les erreurs. Si une commande échoue après celle-ci, le
|
||||||
|
# script s'arrête.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# On lance les commandes sqlite
|
||||||
|
sqlite3 suidchecker.db \
|
||||||
|
"CREATE TABLE fichier(chemin TEXT PRIMARY KEY, cksum INTEGER);"
|
||||||
|
sqlite3 suidchecker.db "CREATE TABLE controle(
|
||||||
chemin TEXT,
|
chemin TEXT,
|
||||||
date INTEGER,
|
date INTEGER,
|
||||||
cksum INTEGER,
|
cksum INTEGER,
|
||||||
status TEXT,
|
status TEXT,
|
||||||
FOREIGN KEY(chemin) REFERENCES fichier(chemin),
|
FOREIGN KEY(chemin) REFERENCES fichier(chemin),
|
||||||
PRIMARY KEY(chemin,date)
|
PRIMARY KEY(chemin,date)
|
||||||
);" | sqlite3 suidchecker.db
|
);"
|
||||||
|
|
||||||
|
# Autorise à nouveau les erreurs, find pouvant renvoyer un code d'erreur 1 en
|
||||||
|
# cas de problème de droits (notamment sur les fichiers spéciaux)
|
||||||
|
set +e
|
||||||
|
|
||||||
|
echo "Récupération des fichiers ayant le bit SUID"
|
||||||
|
files=$(find / -perm -4000 2> /dev/null)
|
||||||
|
|
||||||
|
echo $files
|
||||||
|
|
Loading…
Reference in a new issue