すでに述べたように、私のホームフォルダーは既にecryptfsで暗号化されているため、ecryptfsは私の問題の解決策ではありません。「Ubuntu One」フォルダをホームツリーから移動しても、残りの「Ubuntu One」コンテンツは暗号化されないため、解決策ではありません。
代わりにEncFSを使用することにしました。暗号化されたフォルダの設定は非常に簡単です。しかし、アプリケーションがそれを使用して構成ファイルを格納できるように、それを自動的にマウントする方法は?いくつかの解決策があります:
- pam_mount
- gnome-encfs
- autofs
- 融合する
ログインパスワードとしてEncFSに同じパスワードを使用したくないので、アイデア1は好きではありません。
解決策2 Ubuntuで利用できるaptパッケージがないため、一方は好きではありません。もう一方は、ログイン直後にのみEncFSフォルダーをマウントしたくないのです。何かが失敗したり、フォルダーがすべてアンマウントされたりした場合以降のアクセスは失敗します。
ソリューション3が機能しません。autofsをかなり長い間使用して、sshfsを介してCIFS共有とフォルダをマウントしていましたが、EncFSはサポートされていません。私はautofsでEncFSをマウントするためにいくつかのスクリプトをいじってみましたが、それは複雑すぎてエラーが発生しやすくなりました。
したがって、私が現在使用しているのはソリューション4です。Afuseはaptパッケージとして入手できます。Afuseは、EncFSフォルダーにアクセスするとすぐに自動的にマウントし、アイドル時間が経過すると再びマウント解除します。
すべてを設定する簡単な手順は次のとおりです(将来、詳細を追加する可能性があります)。
- afuseをインストールする
- 暗号化されたコンテンツを格納するための「Ubuntu One」フォルダーを作成する
例:
〜/ Ubuntu \ One / .encrypted
- フォルダーをマウントするための最上位フォルダーとしてフォルダーを作成します
例:
〜/ .fuse
- ヘルパースクリプトを作成する
- Gnomeに自動起動エントリを作成してafuseを起動します
暗号化されていないEncFSフォルダーは〜/ .fuseの下にマウントされます。私の場合、暗号化されていないコンテンツを含むフォルダーの名前はU1Encなので、すべてのデータは〜/ .fuse / U1Encに残ります。私の便宜上、〜/ U1Encから〜/ .fuse / U1Encへのリンクを作成して、そこに簡単にアクセスできるようにしました。
いくつかのWebサイトで見つけたアイデアとヘルパースクリプト。ここにリンクがあります:
FUSEファイルシステムautofsの自動マウント
:sshfs上のencfs
次のスクリプトを使用します。
〜/ .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(実行可能としてマークされ、$ PATHに〜/ binが付いています)
#!/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";
}
}
最後に、Gnome / System / Settingsに登録した〜/ bin / afuse.start.sh(実行可能ファイルとして再度マークされています)は、ログイン後にafuseを開始します
#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse
最後のスクリプトはafuseを起動し、afuse-handlerを起動して、アクセスされるとすぐに〜/ .fuseの下にEncFSフォルダーをマウントします。afuse.handler自体が.afuse-fstabでフォルダーのマウント方法を確認します。EncFSパスワードはU1.encfs.shによってエコー出力されるため、ユーザーの介入は必要ありません(このファイルは私のホームフォルダーに格納されているため、ecryptfsによって暗号化されるため、大きなセキュリティ問題はありません)。
EncFSのさまざまなバージョンに注意してください。Nattyでは現在、EncFSバージョン1.7.4がインストールされています。Maverickの古い1.6バージョンではうまく機能しません。MaverickのEncFSも1.7.4に更新する必要がありました(apt / preferencesを固定してこれを行いました)。