#!/bin/sh # # Script bash utilisé pour déchiffrer les données MedShake # # Adapter la configuration suivante au besoin # Paramètre supplémentaire pour la commande 'cryptsetup' CRYPT_SETUP_OPEN_MORE_PARAM="--type luks" # Nom du fichier périphérique contenant le volume LUKS chiffré CRYPTED_DEV="/dev/sdXY" # /!\ MODIFIER /dev/sdXY PAR LE NOM DU PÉRIPHÉRIQUE SUR VOTRE SYSTÈME !!! # Nom du volume LUKS une fois déverrouillé UNCRYPTED_DEV="meduncrypted" # Emplacement pour le montage de la partition des données déchiffrées UNCRYPTED_MNT_PT="/srv/medshake" # Option de montage supplémentaire pour le périphérique déchiffré UNCRYPTED_MNT_OPT="" # Nom du service pour lancer la base de données MariaDB MYSQLD_SERVICE="medshakedb" uncrypt_pass="${1}" if [ $(id -u) -gt 0 ] then echo "ERR: Vous n'êtes pas root" exit 65 fi if [ -z "${uncrypt_pass}" ] then echo "ERR: Clé de déchiffrement vide" exit 66 fi if [ ! -b "${CRYPTED_DEV}" ] then echo "ERR: Périphérique chiffré non trouvable ${CRYPTED_DEV}" exit 67 fi if [ ! -d "${UNCRYPTED_MNT_PT}" ] then echo "ERR: Le point de montage pour (${UNCRYPTED_MNT_PT}) n'existe pas" exit 68 fi if [ -z $(which cryptsetup) ] then echo "ERR: l'utilitaire 'cryptsetup' n'est pas installé" exit 69 fi if ! cryptsetup status "${UNCRYPTED_DEV}" > /dev/null then echo "${uncrypt_pass}" | cryptsetup open ${CRYPT_SETUP_OPEN_MORE_PARAM} "${CRYPTED_DEV}" "${UNCRYPTED_DEV}" if [ $? -gt 0 ] then echo "ERR: échec lors de l'ouverture du volume LUKS" exit 70 else echo "INF: Volume LUKS ouvert ${CRYPTED_DEV} -> ${UNCRYPTED_DEV}" fi else echo "WARN: ${CRYPTED_DEV} est déjà ouvert" fi if ! grep -q "^/dev/mapper/${UNCRYPTED_DEV} ${UNCRYPTED_MNT_PT}" /etc/mtab then echo mount -o "${UNCRYPTED_MNT_OPT}" "/dev/mapper/${UNCRYPTED_DEV}" "${UNCRYPTED_MNT_PT}" mount -o "${UNCRYPTED_MNT_OPT}" "/dev/mapper/${UNCRYPTED_DEV}" "${UNCRYPTED_MNT_PT}" 2>&1 if [ $? -gt 0 ] then echo "ERR: Échec au montage de /dev/mapper/${UNCRYPTED_DEV} sur ${UNCRYPTED_MNT_PT}" exit 71 else echo "INF: monter /dev/mapper/${UNCRYPTED_DEV} sur ${UNCRYPTED_MNT_PT}" fi else echo "WARN: /dev/mapper/${UNCRYPTED_DEV} est déjà monté sur ${UNCRYPTED_MNT_PT}" fi if [ -f "/var/run/mysqld/${MYSQLD_SERVICE}.pid" ] then echo "WARN: ${MYSQLD_SERVICE} est déjà lancé (le redémarrer)" systemctl restart "${MYSQLD_SERVICE}.service" if [ $? -gt 0 ] then echo "ERR: Échec du redémarrage de ${MYSQLD_SERVICE}" exit 72 fi echo "INF: service ${MYSQLD_SERVICE} redémarré" else systemctl start "${MYSQLD_SERVICE}.service" if [ $? -gt 0 ] then echo "ERR: Échec du démarrage du service ${MYSQLD_SERVICE}" exit 72 fi echo "INF: service ${MYSQLD_SERVICE} démarré" fi