Seperti yang sudah dinyatakan ecryptfs bukan solusi untuk masalah saya karena folder rumah saya sudah dienkripsi oleh ecryptfs. Memindahkan folder "Ubuntu One" dari pohon rumah juga bukan solusi karena pada saat itu konten "Ubuntu One" lainnya tidak dienkripsi lagi.
Saya telah memutuskan untuk menggunakan EncFS sebagai gantinya. Menyiapkan folder terenkripsi cukup sederhana. Tetapi bagaimana cara memasangnya secara otomatis sehingga aplikasi dapat menggunakannya untuk menyimpan file konfigurasi? Ada beberapa solusi:
- pam_mount
- gnome-encfs
- autofs
- afuse
Saya tidak suka ide 1 karena saya tidak ingin menggunakan kata sandi yang sama untuk EncFS sebagai kata sandi login saya.
Solusi 2 Saya tidak suka di satu sisi karena tidak ada paket apt yang tersedia untuk Ubuntu dan di sisi lain saya tidak ingin memiliki folder EncFS hanya dipasang tepat setelah masuk. Jika ada yang gagal atau foldernya akan dilepas setiap folder akses selanjutnya akan gagal.
Solusi 3 tidak berfungsi. Saya telah menggunakan autofs selama beberapa waktu untuk me-mount share dan folder CIFS melalui sshfs tetapi EncFS tidak didukung. Saya telah bermain-main dengan beberapa skrip untuk me-mount EncFS oleh autofs tetapi itu menjadi terlalu kompleks dan rawan kesalahan.
Jadi apa yang saya gunakan saat ini adalah solusi 4. Afuse tersedia sebagai paket apt. Afuse secara otomatis memasang folder EncFS segera setelah folder diakses dan melepasnya lagi setelah beberapa saat.
Berikut adalah langkah-langkah cepat cara mengatur semuanya (mungkin saya menambahkan beberapa detail di masa mendatang):
- instal afuse
- buat folder "Ubuntu One" untuk menyimpan konten yang dienkripsi
Contoh:
~ / Ubuntu \ One / .encrypted
- buat folder sebagai folder teratas untuk digunakan untuk me-mount folder di dalamnya
Contoh:
~ / .fuse
- buat beberapa skrip pembantu
- buat entri autostart di Gnome untuk memulai afuse
Folder EncFS yang tidak terenkripsi akan dipasang di bawah ~ / .fuse. Dalam kasus saya folder dengan konten yang tidak terenkripsi bernama U1Enc, oleh karena itu semua data tetap dalam ~ / .fuse / U1Enc. Demi kenyamanan saya, saya membuat tautan dari ~ / U1Enc ke ~ / .fuse / U1Enc agar lebih mudah.
Gagasan dan skrip pembantu saya temukan di beberapa situs web. Inilah tautannya:
Mengotomatiskan sistem file FUSE
autofs: encfs di atas sshfs
Saya menggunakan skrip berikut:
~ / .afuse-fstab
U1Enc encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m
~ / .creds / U1.encfs.sh (ditandai sebagai dapat dieksekusi dan hanya dapat diakses oleh pengguna sendiri)
#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT
~ / bin / afuse-handler.pl (ditandai sebagai executable dan dengan ~ / bin dalam $ 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";
}
}
dan akhirnya ~ / bin / afuse.start.sh (ditandai lagi sebagai executable) yang saya daftarkan dengan Gnome / System / Settings untuk memulai afuse setelah masuk
#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse
Skrip terakhir meluncurkan afuse yang memulai afuse-handler untuk memasang folder EncFS di bawah ~ / .fuse segera setelah diakses. Afuse.handler sendiri memeriksa .afuse-fstab cara memasang folder. Kata sandi EncFS di-echo oleh U1.encfs.sh sehingga tidak ada intervensi pengguna yang diperlukan (karena file ini disimpan di folder rumah saya itu dienkripsi oleh ecryptfs jadi saya tidak melihat ada masalah keamanan yang besar).
Jaga berbagai versi EncFS. Pada Natty saat ini EncFS versi 1.7.4 diinstal. Itu tidak cocok dengan versi 1.6 yang lebih lama di Maverick. Saya harus memperbarui EncFS di Maverick ke 1.7.4 juga (melakukan ini dengan menyematkan apt / preferensi).