Gestion des erreurs, find, commentaires

This commit is contained in:
Breizh 2018-01-03 14:17:27 +01:00
parent 7f35db0cea
commit d5a3ce9b1f

38
init.sh
View file

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