From 04acb3536d36837cb49a89904a58b54f0a9a1658 Mon Sep 17 00:00:00 2001 From: David Beniamine <david.beniamine@tetras-libre.fr> Date: Tue, 29 Sep 2020 15:52:32 +0200 Subject: [PATCH] Add luks encryption option --- src/scripts/backup_nocloud.sh | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/scripts/backup_nocloud.sh b/src/scripts/backup_nocloud.sh index 0ce9e06..2a5a30e 100755 --- a/src/scripts/backup_nocloud.sh +++ b/src/scripts/backup_nocloud.sh @@ -23,6 +23,10 @@ do_clean(){ then fusermount -zu $encfsmount fi + if $luks + then + cryptsetup luksClose $luksname + fi umount -f $dev } @@ -182,6 +186,8 @@ usage(){ echo " -i | --interrupt list Interrompt les services donnés (liste séparé par des virgules) durant la création de l'archive tar." + echo " -l | --luks pass Utilise des disques chiffres luks, + protégés par le mot de passe donné" echo " -w | --warnonly En cas d'erreur d'une action de sauvegarde, le programme affiche un message mais ne s'nterrompt pas" @@ -199,6 +205,8 @@ gitlab=false mysql=false postgres=false encfs=false +luks=false +luksname=crypt_backup archive=false clone=false MIN_SIZE=$((1024*1024)) @@ -210,7 +218,7 @@ for arg in "$@"; do shift set -- "$@" `echo $arg | sed 's/^-\(-.\).*$/\1/'` done -optspec=":hvC:dcguws:mpe:i:aP:" +optspec=":hvC:dcguws:mpe:i:l:aP:" while getopts "$optspec" optchar; do case "${optchar}" in h) @@ -257,6 +265,10 @@ while getopts "$optspec" optchar; do i) SERVICES="${OPTARG//,/ }" ;; + l) + luks=true + ENCPASS="$OPTARG" + ;; w) warn_only=true; ;; @@ -290,7 +302,15 @@ do_log "démarrage le `date`" [ ! -d "$dest" ] && mkdir "$dest" -/bin/mount -t auto $dev $dest +if $luks +then + echo $ENCPASS | cryptsetup luksOpen $dev $luksname + test_and_fail $? "Impossible de déchiffrer le disque, abandon" + /bin/mount -t auto /dev/mapper/$luksname $dest + echo "OK" > $dest/test +else + /bin/mount -t auto $dev $dest +fi test_and_fail $? "Impossible de monter le disque destination, abandon" if $encfs -- GitLab