我正在尝试在 dropbox 上使用 eCryptfs,但遇到了一些问题。
我的系统是 GNU/Linux,确切地说是 openSUSE 12.2。
我的设置是这样的:我设置了两个运行 openSUSE 12.2 的 VirtualBox 实例,我们称它们为 VM1 和 VM2。Dropbox 和往常一样,正在同步 ~/Dropbox 中的所有内容。为了创建我的 eCryptfs 设置,我在两个虚拟机上执行以下操作:
mkdir -m 500 ~/ecryptfs_upper
mkdir -m 700 ~/Dropbox/ecryptfs_lower
sudo mount -t ecryptfs Dropbox/ecryptfs_lower/ ecryptfs_upper/
Run Code Online (Sandbox Code Playgroud)
我将 eCryptfs 配置为:
key type: passphrase
cipher: aes
key bytes: 16
plaintext passthrough: no
filename encryption: yes
Run Code Online (Sandbox Code Playgroud)
如果我现在继续在 VM1 上的 ~/ecryptfs_upper 中创建文件,它也将在 VM2 上正确显示。然而,当我在一个虚拟机上更改此文件时,有时(通常但并非总是由于某种原因)它似乎不会在另一台虚拟机上更新。
如果我检查两个虚拟机上 ~/Dropbox/ecryptfs_lower 中的底层文件,它们是相同的(sha256sum 生成相同的哈希值),因此 dropbox 已正确地同步它们。但是~/ecryptfs_upper中对应的文件还是不一样!我必须卸载然后再次安装 eCryptfs 才能正确显示更改。
问题似乎是,当 dropbox 更新 eCryptfs 下级目录中的文件时,eCryptfs 不会注意到更改。据推测,eCryptfs 假设所有更改都将通过挂载。对于大多数用例来说,这显然是一个公平的假设,但当使用 eCryptfs 加密同步云存储(如 Dropbox)时,这显然是一个大问题。
我见过几个人提倡将 eCryptfs …
我正在使用 encfs 并且到目前为止我对它非常满意,但我有一个问题可能有点烦人。
说我最喜欢的挂载点是 ~/encfsmnt。我的问题是,如果我的 encfs 尚未安装,那是不明显的。我可能会很高兴地将数据写入 ~/encfsmnt 目录,而不是将 encfs 加密的数据写入 encfs 下层目录。
解决这个问题的显而易见的方法是将 ~/encfsmnt 的文件模式设置为 400 (dr--------),但显然 encfs 要求挂载点目录是可写的,以便挂载成功(我收到“fusermount:用户对挂载点没有写访问权限”错误消息)。
有没有办法让我的挂载点不可写,除非 encfs 实际挂载到它?