diff --git a/add.sh b/add.sh index 6513537..22d41be 100755 --- a/add.sh +++ b/add.sh @@ -1,7 +1,5 @@ #!/bin/bash -. suidchecker.conf - # On récupère tous les fichiers ayant le bit SUID fichiers=$(find / -perm -4000 2> /dev/null) diff --git a/check.sh b/check.sh index ec8ce7a..1e904d9 100755 --- a/check.sh +++ b/check.sh @@ -1,7 +1,5 @@ #!/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 diff --git a/init.sh b/init.sh index 2a7ef57..c2af663 100755 --- a/init.sh +++ b/init.sh @@ -1,7 +1,5 @@ #!/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. @@ -12,12 +10,6 @@ then 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" diff --git a/suidchecker b/suidchecker new file mode 100755 index 0000000..440cbd7 --- /dev/null +++ b/suidchecker @@ -0,0 +1,57 @@ +#!/bin/bash + +# 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 + +. /etc/suidchecker.conf &>/dev/null || . suidchecker.conf &>/dev/null + +export DATABASE +export INSTALL_PATH + +OPTS=$(getopt -o h -l init,reinit,add,check,help -- "$@") +eval set -- $OPTS + +usage() { + echo "Utilisation du script :" + echo -e "\t--init : initialise la base de données" + echo -e "\t--reinit : réinitialise la base de données" + echo -e "\t--add : parcours l'arborescence et ajoute les fichiers ayant le bit SUID qui n'existent pas dans la base" + echo -e "\t--check : vérifie les fichiers répertoriés dans la base" + echo -e "\t--help, -h : affiche ce message" + echo + echo "Plus d'informations dans le man" +} + +init() { + $INSTALL_PATH/init.sh +} + +reinit() { + rm $DATABASE + init +} + +add() { + $INSTALL_PATH/add.sh +} + +check() { + $INSTALL_PATH/check.sh +} + +while true ; do + case "$1" in + -h|--help) usage; exit 0;; + --init) init; shift;; + --reinit) reinit; shift;; + --add) add; shift;; + --check) check; shift;; + --) shift; break;; + esac +done + +exit 0 diff --git a/suidchecker.conf b/suidchecker.conf index 96ae3dd..2029091 100644 --- a/suidchecker.conf +++ b/suidchecker.conf @@ -1 +1,2 @@ DATABASE=suidchecker.db +INSTALL_PATH=.