Come già detto ecryptfs non è una soluzione al mio problema poiché la mia cartella home è già crittografata da ecryptfs. Spostare la cartella "Ubuntu One" fuori dall'albero di casa non è una soluzione, poiché il resto del contenuto di "Ubuntu One" non è più crittografato.
Ho deciso di usare invece EncFS. L'impostazione di una cartella crittografata è piuttosto semplice. Ma come montarlo automaticamente in modo che le applicazioni possano utilizzarlo per archiviare i file di configurazione? Ci sono alcune soluzioni:
- pam_mount
- gnome-encfs
- autofs
- un fuso
Non mi piace l'idea 1 perché non voglio usare la stessa password per EncFS come password di accesso.
Soluzione 2 Da un lato non mi piace perché non esiste un pacchetto apt disponibile per Ubuntu e dall'altro non voglio che la cartella EncFS sia montata solo dopo aver effettuato l'accesso. Se qualcosa non va o la cartella viene smontata ogni l'accesso successivo fallirà.
La soluzione 3 non funziona. Sto usando autofs da un po 'di tempo per montare condivisioni e cartelle CIFS tramite sshfs ma EncFS non è supportato. Ho giocato con diversi script per montare EncFS con autofs ma questo è diventato troppo complesso e soggetto a errori.
Quindi quello che sto usando attualmente è la soluzione 4. Afuse è disponibile come pacchetto apt. Afuse monta automaticamente la cartella EncFS non appena si accede alla cartella e la smonta nuovamente dopo qualche tempo di inattività.
Ecco i passaggi rapidi su come impostare tutto (forse aggiungerò alcuni dettagli in futuro):
- installa afuse
- creare la cartella "Ubuntu One" per archiviare il contenuto crittografato
Esempio:
~ / Ubuntu \ One / .encrypted
- crea una cartella come cartella principale per consentire a afuse di montare le cartelle all'interno
Esempio:
~ / .Fuse
- creare alcuni script di supporto
- crea una voce di avvio automatico in Gnome per avviare afuse
La cartella EncFS non crittografata viene montata sotto ~ / .fuse. Nel mio caso la cartella con il contenuto non crittografato si chiama U1Enc, quindi tutti i dati rimangono in ~ / .fuse / U1Enc. Per mia comodità, ho creato un collegamento da ~ / U1Enc a ~ / .fuse / U1Enc per arrivarci più facilmente.
Le idee e gli script di supporto che ho trovato su diversi siti web. Ecco i link:
Autofunt dei filesystem FUSE
autofs: encfs su sshfs
Uso i seguenti script:
~ / .Afuse-fstab
U1Enc encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m
~ / .creds / U1.encfs.sh (contrassegnato come eseguibile e accessibile solo dall'utente stesso)
#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT
~ / bin / afuse-handler.pl (contrassegnato come eseguibile e con ~ / bin in $ 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";
}
}
e infine ~ / bin / afuse.start.sh (contrassegnato nuovamente come eseguibile) che ho registrato con Gnome / System / Settings per avviare afuse dopo il login
#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse
L'ultimo script avvia afuse che avvia il gestore afuse per montare la cartella EncFS sotto ~ / .fuse non appena si accede. Lo stesso afuse.handler controlla .afuse-fstab come montare la cartella. La password EncFS viene ripetuta da U1.encfs.sh, quindi non è necessario alcun intervento dell'utente (poiché questo file è archiviato nella mia cartella home viene crittografato da ecryptfs, quindi non vedo un grosso problema di sicurezza).
Prenditi cura di diverse versioni di EncFS. Su Natty attualmente viene installata la versione 1.7.4 di EncFS. Questo non funziona bene con una versione 1.6 precedente su Maverick. Ho dovuto aggiornare EncFS anche su Maverick alla 1.7.4 (fatto bloccando apt / preferenze).