web-dev-qa-db-ja.com

ドロップボックス付きのeCryptfs:同期された変更を表示するには再マウントする必要があります

Dropbox上でeCryptfsを使用して実験していますが、いくつかの問題が発生しています。

私のシステムはGNU/Linux、正確にはopenSUSE12.2です。

したがって、私の設定は次のとおりです。openSUSE12.2を実行するVirtualBoxの2つのインスタンスを設定し、それらをVM1とVM2と呼びましょう。 Dropboxは、いつものように、〜/ Dropboxのすべてを同期しています。 eCryptfsセットアップを作成するには、両方のVMで次の手順を実行します。

mkdir -m 500 ~/ecryptfs_upper
mkdir -m 700 ~/Dropbox/ecryptfs_lower
Sudo mount -t ecryptfs Dropbox/ecryptfs_lower/ ecryptfs_upper/

ECryptfsを次のように構成します。

key type: passphrase
cipher: aes
key bytes: 16
plaintext passthrough: no
filename encryption: yes

VM1の〜/ ecryptfs_upperにファイルを作成すると、VM2にも正しく表示されます。ただし、一方のVMでこのファイルを変更すると、他のVMでは更新されていないように見えることがあります(多くの場合、常にではありません)。

2つのVMの〜/ Dropbox/ecryptfs_lowerにある基になるファイルを調べると、それらは同一であるため(sha256sumは同じハッシュを生成します)、dropboxはそれらを正しく同期することができます。しかし、〜/ ecryptfs_upperの対応するファイルはまだ異なります!変更が正しく表示されるようにするには、eCryptfsをアンマウントしてから再度マウントする必要があります。

問題は、dropboxがeCryptfsの下位ディレクトリにあるファイルを更新するときに、eCryptfsがその変更に気付かないことだと思われます。おそらくeCryptfsは、すべての変更がマウントを通過すると想定しています。ほとんどのユースケースでは、これは明らかに公正な仮定ですが、eCryptfsを使用してdropboxのような同期されたクラウドストレージを暗号化する場合、それは明らかに大きな問題です。

ドロップボックスでeCryptfsを使用することを提唱している人を見たことがありますが、この問題については言及されていません。誰かが修正(たとえば、eCryptfsが使用しているように見えるキャッシュをオフにする方法)、またはこの問題に悩まされないeCryptfsの代替案を知っていますか?

4
Quantumboredom

ECryptfsの代わりに encfs を見てください。あなたが説明する問題に悩まされることはありません。

EncFS/Dropboxセットアップチュートリアル

3
hrunting

Linux上のeCryptfsの設計上の欠陥に遭遇しました。下部のページキャッシュに変更が加えられたことをeCryptfsに通知するメカニズムがないため、ページがその下から変更されたかどうかはわかりません。アクティブなeCryptfsマウントで暗号化された下位のファイルを変更することは、EXT4がマウントされているときにブロックデバイスのビットを反転するようなものです。 EXT4は、ブロックデバイスをいじるのはそれだけであると想定しているため、ブロックデバイスの状態について独自の考えを持っています。それが下から変更された場合、状況はかなり速く南下する可能性があります。

3
Mike Halcrow

それは解決策ではありませんが、その方法です。 Linux Mint 17でテストされ、完全に機能しますが、他のLinuxディストリビューションでも機能するはずです。

#!/ bin/bash 
 
 export PATH = "/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin "
 
 xhome = $ {HOME} 
 
#HOWTO 
#
#Dropboxの以前のインストールを削除-すべてのディレクトリ(〜/ .dropbox、〜/ .dropbox-dist、〜/ Dropbox)およびコマンドラインタイプ:
#
#mkdir -p $ {HOME} /。mount/dropbox 
#dd if =/dev/zero of = $ {HOME} /。mount/dropbox.img bs = 4K count = 2M#for 8GB 
#mkfs.xfs $ {HOME} /。 XFSの場合はmount/dropbox.img#ですが、好みのFSを使用できます。 EXT4 
#mkdir $ {HOME}/bin 
#
#このスクリプトを$ {HOME} /bin
#
# chmod 0755 $ {HOME} /bin/dropbox-mount.sh
#
#/ etc/sudoers行に追加:
#
#YourUserName ALL = NOPASSWD:/ bin/mount 
#
#次のスクリプトを実行します:$ {HOME} /bin/dropbox-mount.sh
#
# chown(id -u): (id -g)$ {HOME} /。mount/dropbox 
#
#次にDropboxアプリを起動し、ベースディレクトリとして$ {HOME} /。mount/dropbox /を選択します
#Dropboxは自動的に$ {HOME} /。mount/dropbox/Dropbox。
#
#重要
#Dropbox設定でDropbox自動起動をオフにします。
#このスクリプトをシステムの自動起動に追加します([設定]-> [スタートアップアプリケーション])
 
 xdropbox = "。mount/dropbox" 
 xdropbox_dir = "$ {xhome}/$ {xdropbox} "
 xdropbox_img =" $ {xhome}/$ {xdropbox} .img "
 
 if [` mount | grep -c "$ {xhome}/$ {xdropbox}" `-eq 0]; then 
 Sudo mount -o loop $ {xdropbox_img} $ {xdropbox_dir} 
 fi 
 
 sleep 10 && dropbox start&>/dev/null 
 
 0を終了
0
siewa001