Comme déjà indiqué, ecryptfs n'est pas une solution à mon problème car mon dossier personnel est déjà crypté par ecryptfs. Déplacer le dossier "Ubuntu One" hors de l'arborescence d'accueil n'est pas non plus une solution, car le reste du contenu "Ubuntu One" n'est plus chiffré.
J'ai décidé d'utiliser EncFS à la place. La configuration d'un dossier crypté est assez simple. Mais comment le monter automatiquement pour que les applications puissent l'utiliser pour stocker des fichiers de configuration? Il existe quelques solutions:
- pam_mount
- gnome-encfs
- autofs
- un fusible
Je n'aime pas l'idée 1 car je ne veux pas utiliser le même mot de passe pour EncFS que mon mot de passe de connexion.
Solution 2 Je n'aime pas d'une part car il n'y a pas de package apt disponible pour Ubuntu et d'autre part je ne veux pas que le dossier EncFS soit monté juste après la connexion. Si quelque chose échoue ou si le dossier est démonté tous les l'accès ultérieur échouera.
La solution 3 ne fonctionne tout simplement pas. J'utilise autofs depuis un certain temps pour monter des partages et des dossiers CIFS via sshfs mais EncFS n'est tout simplement pas pris en charge. J'ai joué avec plusieurs scripts pour monter EncFS par autofs mais cela est devenu trop complexe et sujet aux erreurs.
Donc, ce que j'utilise actuellement, c'est la solution 4. Afuse est disponible en tant que package apt. Afuse monte automatiquement le dossier EncFS dès que le dossier est accédé et le démonte à nouveau après un certain temps d'inactivité.
Voici les étapes rapides pour tout configurer (j'ajouterai peut-être quelques détails à l'avenir):
- installer un fusible
- créer le dossier "Ubuntu One" pour stocker le contenu crypté
Exemple:
~ / Ubuntu \ One / .encrypted
- créer un dossier en tant que dossier supérieur à utiliser pour monter des dossiers dans
Exemple:
~ / .fuse
- créer des scripts d'aide
- créer une entrée de démarrage automatique dans Gnome pour lancer afuse
Le dossier EncFS non chiffré est monté sous ~ / .fuse. Dans mon cas, le dossier avec le contenu non chiffré est nommé U1Enc, donc toutes les données restent dans ~ / .fuse / U1Enc. Pour ma commodité, j'ai créé un lien de ~ / U1Enc vers ~ / .fuse / U1Enc pour y arriver plus facilement.
Les idées et scripts d'aide que j'ai trouvés sur plusieurs sites Web. Voici les liens:
Montage automatique des systèmes de fichiers FUSE
autofs: encfs sur sshfs
J'utilise les scripts suivants:
~ / .afuse-fstab
U1Enc encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m
~ / .creds / U1.encfs.sh (marqué comme exécutable et accessible uniquement par l'utilisateur lui-même)
#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT
~ / bin / afuse-handler.pl (marqué comme exécutable et avec ~ / bin dans $ PATH)
#!/usr/bin/perl -w
$fstab="$ENV{HOME}/.afuse-fstab";
$afusedir=$ARGV[0];
$afuse_mountpoint=$ARGV[1];
print "afusedir:$afusedir\n";
print "afuse_mountpoint:$afuse_mountpoint\n";
system("logger -t afuse 1:$ARGV[0] 2:$ARGV[1]");
open(FSTAB, $fstab ) or die("Can not open afuse-fstab at $fstab\n");
while( <FSTAB> ) {
if( /^$afusedir/ ) {
s/[^\s\/]+[\s]*//;
s/%r/$afusedir/g;
s/%m/$afuse_mountpoint/g;
chomp;
$cmd = $_;
print "$cmd\n";
system($_) == 0
or die "execution of FUSE filesystem failed!\n"
. "command:$cmd\n"
. "reason:$?\n";
}
}
et enfin ~ / bin / afuse.start.sh (marqué à nouveau comme exécutable) que j'ai enregistré avec Gnome / System / Settings pour démarrer afuse après la connexion
#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse
Le dernier script lance afuse qui démarre le gestionnaire afuse pour monter le dossier EncFS sous ~ / .fuse dès qu'il est accédé. Le afuse.handler lui-même vérifie le .afuse-fstab comment monter le dossier. Le mot de passe EncFS est repris par U1.encfs.sh donc aucune intervention de l'utilisateur n'est nécessaire (comme ce fichier est stocké dans mon dossier personnel, il est crypté par ecryptfs, donc je ne vois pas de gros problème de sécurité).
Prenez soin des différentes versions d'EncFS. Sur Natty, la version 1.7.4 d'EncFS est actuellement installée. Cela ne fonctionne pas bien avec une ancienne version 1.6 sur Maverick. J'ai également dû mettre à jour EncFS sur Maverick vers 1.7.4 (en faisant cela en épinglant apt / preferences).