використовуйте ecryptfs для Ubuntu One із уже зашифрованим домашнім каталогом


9

Мені б хотілося, щоб в Ubuntu One була одна зашифрована папка. В Інтернеті є актуальні способи, як налаштувати його за допомогою EncFS або ecryptfs. Я хотів би використовувати ecryptfs - не через швидкість, оскільки швидкість насправді не так вже й велика, якщо ви зберігаєте свої дані в хмарі - але, як я вже використовував ecryptfs, звик до цього і тому не ' не дуже хочеться використовувати і інше рішення.

Проблема з папкою Ubuntu One полягає в тому, що вона є частиною домашньої папки користувача. З останніми версіями Ubuntu в багатьох випадках домашня папка користувача вже зашифрована за допомогою ecryptfs, і ви не можете використовувати ecryptfs (для папки Ubuntu One) поверх ecryptfs (домашнього каталогу користувача).

То що ж можна було зробити? Звичайно, замість цього використовуйте EncFS. Або перемістіть папку Ubuntu One із домашньої папки користувача.

Будь-які інші ідеї чи пропозиції?

Відповіді:


4

Як уже було зазначено, шифри не є вирішенням моєї проблеми, оскільки моя домашня папка вже зашифрована ecryptfs. Переміщення папки "Ubuntu One" з домашнього дерева також не є рішенням, тому що решта вмісту "Ubuntu One" більше не шифрується.

Я вирішив замість цього використовувати EncFS. Налаштування зашифрованої папки досить просто. Але як встановити його автоматично, щоб програми могли використовувати його для зберігання конфігураційних файлів? Є кілька рішень:

  1. pam_mount
  2. gnome-encfs
  3. автоф
  4. страх

Мені не подобається ідея 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 / настройки).


0

Можливий спосіб зробити це - використовувати два різних каталоги:

~ / my_secret_data не синхронізується, але зашифрує всі додані до нього файли, а потім перемістить зашифровані файли з папки ~ / my_secret_data / в ~ / Ubuntu One / папку. Якщо ви додали свій ключ GPG до всіх своїх комп’ютерів, ви зможете автоматично відкривати зашифровані файли, але інші цього не зробили.

Думаю, це не дуже елегантно, але це має працювати.


Ось що я роблю з EncFS. Зашифровані дані зберігаються в ~ / Ubuntu \ One / .encrypted, а незашифровані в ~ / .fuse / U1Enc. Я просто використовую EncFS замість GPG для зручності користувача - дані шифруються / розшифровуються під час вашого руху.
spi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.