带有Dropbox的eCryptfs:必须重新安装同步更改才能显示


4

我正在尝试在dropbox上使用eCryptfs,我遇到了一些问题。

我的系统是GNU / Linux,确切地说就是openSUSE 12.2。

我的设置是这样的:我已经设置了两个运行openSUSE 12.2的VirtualBox实例,让我们称之为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上更新。

如果我检查两个虚拟机上的〜/ Dropbox / ecryptfs_lower中的底层文件它们是相同的(sha256sum产生相同的散列),那么dropbox已经正确设法同步它们。但是〜/ ecryptfs_upper中的相应文件仍然不同!我必须卸载然后再次安装eCryptfs以使更改正确显示。

问题似乎是当dropbox更新eCryptfs下层目录中的文件时,eCryptfs不会注意到该更改。据推测,eCryptfs假设所有更改都将通过挂载。对于大多数用例来说,这显然是一个公平的假设,但是当使用eCryptfs加密像Dropbox这样的同步云存储时,这显然是一个大问题。

我见过几个人主张使用带有Dropbox的eCryptfs,但我还没有看到提到这个问题。有没有人知道一个修复程序(例如关闭eCryptfs似乎正在使用的缓存的方法),或者不会遇到此问题的eCryptfs的替代方法?

Answers:


3

encfs作为eCryptfs的替代方案。它不会遇到您描述的问题。

EncFS / Dropbox设置教程


2
EncFS确实似乎没有遇到这个问题,使它更适合这项任务。我还发现了github.com/timoc/encfsbox,它为dropbox + EncFS组合提供了一个很好的冲突处理机制,确实是一个非常好的解决方案。
Quantumboredom 2013年

1
在Windows,Mac和移动设备上,您可以使用BoxCryptor更轻松地访问加密数据。
咆哮

1
请注意EncFS中的加密弱点,如果您依赖它来处理关键的事情(defuse.ca/audits/encfs.htm)。在2.0版本上正在进行的工作可能会或可能不会解决这些问题,但尚未发布。
darrend 2015年

3

您在Linux上的eCryptfs中偶然发现了设计缺陷。没有机制通知eCryptfs已对较低页面缓存进行了更改,因此它不知道页面是否已从其下方更改。更改活动eCryptfs安装上的较低加密文件有点像在块设备上安装EXT4时翻转位。EXT4对块设备的状态有自己的想法,因为它假设它是唯一搞乱块设备的东西,如果它从它下面改变了,那么东西可以很快地向南移动。


0

这不是一个解决方案,而是它的方式。在Linux Mint 17上测试并且运行良好,但也应该适用于其他Linux发行版。

#!/斌/庆典

export PATH =“/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin”

xhome = $ {HOME}

# 如何
#
#删除之前安装的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} /。mount / dropbox.img#对于XFS,但你可以使用你喜欢的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
#
#Next启动Dropbox App并选择$ {HOME} /.mount / dropbox /作为基目录,
#Dropbox会自动创建$ {HOME} /.mount / dropbox / Dropbox。
#
#重要
#在Dropbox偏好设置中关闭Dropbox自动启动。
#将此脚本添加到系统自动启动(设置 - >启动应用程序)

xdropbox =“安装/保管箱”
xdropbox_dir = “$ {xhome} / $ {xdropbox}”
xdropbox_img = “$ {xhome} / $ {xdropbox} .IMG”

如果[`mount | grep -c“$ {xhome} / $ {xdropbox}”``-eq 0]; 然后
    sudo mount -o loop $ {xdropbox_img} $ {xdropbox_dir}
科幻

sleep 10 && dropbox start&> / dev / null

退出0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.