Avec les versions de *buntu 20.04 et suivantes, il semble que les interfaces "Cryptkeeper" ou "Gnome-encfs-manager" ne soient plus opérationnelles. Pour palier ce manque, je me suis écrit un petit script en bash et zenity en remplacement.
Mon script (que j'ai judicieusement appelé "coffre") peut gérer plusieurs coffres, les ouvrir et les fermer, ainsi que les créer également.
Le fonctionnement en est simple, à savoir :
- On lance le script pour ouvrir un coffre à sélectionner (un dossier chiffré caché suffixé par "_encfs")
--> Un point de montage visible est créé avec le nom du coffre non suffixé par "_encfs", dans le même répertoire que le coffre chiffré.
Le script ouvre le gestionnaire de fichiers sur le dossier du coffre ouvert pour avoir accès aux éléments contenus, puis il se termine.
- On lance à nouveau le script pour fermer un coffre à sélectionner (soit le dossier chiffré, soit le dossier en clair, visible)
--> Le coffre est refermé, le point de montage est supprimé (par discrétion) et le script se termine.
Si on ne sélectionne aucun dossier et qu'on clique sur "Annuler", la création d'un nouveau coffre est proposée
--> On peut alors quitter (si on ne veut pas effectivement créer un coffre) en re-cliquant sur "Annuler" pour sortir du script.
Pour effectuer la création, le dialogue étant géré directement par le logiciel "encfs", le script lance la commande dans un terminal xterm
--> Les paramètres à fournir dans ce dialogue sont donc ceux fournis dans mode ligne de commande...
Une fois le dialogue terminé, le terminal xterm devient inactif, il ne réagit plus. Il suffit de fermer la fenêtre pour revenir au script.
Le script finalise alors la création et le montage du nouveau coffre sur son point de montage (dossier équivalent en clair)
--> Le script ouvre le gestionnaire de fichiers sur le dossier du coffre ouvert pour y ajouter des éléments, puis il se termine.
#!/bin/bash
# Définition de la variable D, chemin du dossier déchiffré
D="$HOME/coffre"
# Définition de la variable C, chemin du dossier chiffré
C="$HOME/.coffre_encfs"
# Sélection du dossier chiffré à gérer (Valider) ou à créer (Annuler)
Choix=$(zenity --file-selection --title "Gestion des dossiers chiffrés - Sélection (Valider) ou Création (Annuler)" --filename="$HOME/" --directory)
crd=$?
case $crd in
0 ) if [ "${Choix: -6}" != "_encfs" ]; then
D="$Choix"
C="${Choix%/*}/.${Choix##*/}_encfs"
if [ ! -e "$C" ]; then
zenity --notification --text "Aucun dossier chiffré $C n'existe !"
exit 1
fi
else
C="$Choix"
X="${Choix%/*}/${Choix##*.}"
D="${X%_encfs}"
fi
;;
1 ) D=$(zenity --entry --title "Gestion des dossiers chiffrés" --text "Nom absolu du dossier chiffré à créer" --entry-text="$D")
if [ $? != 0 ]; then
zenity --notification --text "Fonction abandonnée"
exit 1
else
C="${D%/*}/.${D##*/}_encfs"
xterm -hold -e "encfs $C $D"
if [ $? != 0 ]; then
zenity --notification --text "Erreur de création de $C"
exit 1
fi
zenity --notification --text "Création de $C et montage sur $D réussi !"
# Ouverture du dossier dans le gestionnaire de fichiers
xdg-open $D &
exit
fi
;;
* ) exit 1
;;
esac
# Test de condition : Est-ce que le dossier déchiffré existe ?
# - si oui, on démonte le dossier chiffré et on supprime le dossier déchiffré
# - si non, on crée le dossier déchiffré et on monte le dossier chiffré
if [ -e "$D" ]; then
# Démontage du dossier chiffré
fusermount -u "$D"
if [ $? != 0 ]; then
zenity --notification --text "Erreur de démontage de $D"
exit 1
fi
[ -e "$D" ] && rmdir "$D"
zenity --notification --text "Dossier $D démonté et supprimé"
else
# Création du dossier déchiffré
mkdir "$D"
if [ $? != 0 ]; then
zenity --notification --text "Erreur de création du dossier $D"
exit 1
fi
# Montage du dossier chiffré
zenity --entry --title "Gestion des dossiers chiffrés" --text "Entrer le mot de passe" --hide-text | encfs -S "$C" "$D"
if [ $? != 0 ]; then
zenity --notification --text "Erreur de montage de $D"
exit 1
fi
zenity --notification --text "Montage de $C sur $D réussi !"
# Ouverture du dossier dans le gestionnaire de fichiers
xdg-open $D &
fi
exit
Il est bien sûr possible de lancer le script dans un terminal, mais pour l'intégrer à l'environnement graphique (après tout, c'est un GUI), il vaut mieux lui créer un lanceur qui permettra de le lancer d'un simple clic de souris.
Mieux, si on veut pouvoir gérer facilement plusieurs coffres, les ouvrir / fermer rapidement, on peut placer ce lanceur dans le tableau de bord pour l'avoir disponible à tout moment d'un simple clic.
Note: N'hésitez pas à me faire remonter vos critiques constructives sur de possibles améliorations du script. Merci.