Як уже було зазначено, шифри не є вирішенням моєї проблеми, оскільки моя домашня папка вже зашифрована ecryptfs. Переміщення папки "Ubuntu One" з домашнього дерева також не є рішенням, тому що решта вмісту "Ubuntu One" більше не шифрується.
Я вирішив замість цього використовувати EncFS. Налаштування зашифрованої папки досить просто. Але як встановити його автоматично, щоб програми могли використовувати його для зберігання конфігураційних файлів? Є кілька рішень:
- pam_mount
- gnome-encfs
- автоф
- страх
Мені не подобається ідея 1, тому що я не хочу використовувати той самий пароль для EncFS, як мій пароль для входу.
Рішення 2 Мені не подобається з одного боку, тому що для Ubuntu немає доступного пакету, а з іншого боку, я не хочу, щоб папка EncFS монтувалася лише після входу в систему. Якщо щось не вдається або папка стає відключена кожен подальший доступ не вдасться.
Рішення 3 просто не працює. Я використовую autofs досить довгий час для монтажу спільних файлів та папок CIFS через sshfs, але EncFS просто не підтримується. Я розігрувався з декількома сценаріями для монтажу EncFS від autofs, але це стало занадто складним і схильним до помилок.
Тому я зараз використовую рішення 4. Afuse доступний як підходящий пакет. Afuse автоматично монтує папку EncFS, як тільки доступ до папки, і після деякого простою знову відключається.
Ось короткі кроки, як все налаштувати (можливо, я додам деякі деталі в майбутньому):
- встановити запобіжник
- створити папку "Ubuntu One" для зберігання зашифрованого вмісту
Приклад:
~ / Ubuntu \ One / .encrypted
- створити папку як верхню папку для невідповідності монтувати папки всередині
Приклад:
~ / .пал
- створити кілька помічників сценаріїв
- створити запис автозапуску в Gnome, щоб запустити afuse
Нешифрована папка EncFS встановлюється під ~ / .fuse. У моєму випадку папка з незашифрованим вмістом називається U1Enc, тому всі дані залишаються в ~ / .fuse / U1Enc. Для моєї зручності я створив посилання від ~ / U1Enc до ~ / .fuse / U1Enc, щоб легше туди потрапити.
Ідеї та сценарії помічників я знайшов на кількох веб-сайтах. Ось посилання:
Автоматизація FUSE файлових систем
autofs: encfs над sshfs
Я використовую такі сценарії:
~ / .afuse-fstab
U1Enc encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m
~ / .creds / U1.encfs.sh (позначений як виконуваний і доступний лише користувачеві)
#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT
~ / bin / afuse-handler.pl (позначено як виконуваний файл і з ~ / bin в $ 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";
}
}
і, нарешті, ~ / bin / afuse.start.sh (знову позначений як виконуваний файл), який я зареєстрував у Gnome / System / Settings, щоб після входу в систему почався аффуз.
#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse
Останній скрипт запускає afuse, який запускає обробник afuse для монтажу папки EncFS під ~ / .fuse, як тільки він отримує доступ. Сам afuse.handler перевіряє .afuse-fstab як встановити папку. Пароль EncFS перегукується з U1.encfs.sh, тому ніякого втручання користувача не потрібно (оскільки цей файл зберігається в моїй домашній папці, він шифрується за допомогою encryptfs, тому я не бачу великих проблем із безпекою).
Подбайте про різні версії EncFS. На Natty наразі встановлюється версія EncFS 1.7.4. Це не дуже добре зіставляється зі старшою версією 1.6 Maverick. Мені довелося також оновити EncFS на Maverick до 1.7.4 (це було зроблено, встановивши apt / настройки).