#!/bin/bash # 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 ] then echo "Le fichier existe déjà." >&2 exit 1 fi # Vérifie qu'on est bien en root if [ $(id -u) -ne 0 ] then echo "Ce script doit être executé en root" >&2 exit 1 fi # 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, date INTEGER, cksum INTEGER, status TEXT, FOREIGN KEY(chemin) REFERENCES fichier(chemin), PRIMARY KEY(chemin,date) );" # 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