将ecryptfs用于已加密的主目录的Ubuntu One


9

我想要在Ubuntu One上拥有一个加密文件夹的想法。Internet上有最新的howto如何使用EncFS或ecryptfs进行设置。我想使用ecryptfs-不是因为速度,因为如果您将数据存储在云中,速度实际上并没有太大关系-但由于我已经在使用ecryptfs,已经习惯了,因此不要我也真的很想使用其他解决方案。

Ubuntu One文件夹的问题在于,它是用户主文件夹的一部分。在许多情况下,使用最新的Ubuntu版本时,用户的主文件夹已经使用ecryptfs进行了加密,并且您不能在用户主目录的ecryptfs之上使用ecryptfs(对于Ubuntu One文件夹)。

那怎么办?当然,请改用EncFS。或将Ubuntu One文件夹移出用户的主文件夹。

还有其他想法或建议吗?

Answers:


4

如前所述,ecryptfs并非解决我的问题的方法,因为我的主文件夹已被ecryptfs加密。将“ Ubuntu One”文件夹移出主目录树也不是解决方案,因为其余的“ Ubuntu One”内容不再加密。

我决定改用EncFS。设置加密文件夹非常简单。但是如何自动安装它,以便应用程序可以使用它来存储配置文件?有一些解决方案:

  1. pam_mount
  2. gnome-encfs
  3. autofs
  4. 灌输

我不喜欢想法1,因为我不想为EncFS使用与登录密码相同的密码。

解决方案2我不喜欢一方面,因为没有适用于Ubuntu的apt软件包,另一方面,我不想仅在登录后立即挂载EncFS文件夹。如果出现故障或每次卸载该文件夹,后续访问将失败。

解决方案3无效。我已经使用autofs相当一段时间了,以通过sshfs挂载CIFS共享和文件夹,但是只是不支持EncFS。我已经试过几个脚本来通过autofs挂载EncFS,但这变得太复杂且容易出错。

因此,我当前使用的是解决方案4。Afuse可作为apt软件包提供。一旦访问该文件夹,Afuse就会自动挂载EncFS文件夹,并在闲置一段时间后再次将其卸载。

以下是设置所有步骤的快速步骤(也许以后我会添加一些详细信息):

  • 安装灌注
  • 创建“ Ubuntu One”文件夹以存储加密的内容

例:

〜/ Ubuntu \ One / .encrypted

  • 创建一个文件夹作为顶层文件夹,以便在其中装入文件夹

例:

〜/。保险丝

  • 创建一些帮助脚本
  • 在Gnome中创建一个自动启动条目以启动灌注

未加密的EncFS文件夹安装在〜/ .fuse下。在我的情况下,具有未加密内容的文件夹名为U1Enc,因此所有数据都保留在〜/ .fuse / U1Enc中。为方便起见,我创建了一个从〜/ U1Enc到〜/ .fuse / U1Enc的链接,以使到达那里更容易。

我在几个网站上发现了这些想法和帮助程序脚本。链接如下:

自动挂载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";
        }
}

最后是〜/ 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回显,因此不需要用户干预(由于此文件存储在我的主文件夹中,因此已由ecryptfs加密,因此我看不到大的安全问题)。

请注意不同的EncFS版本。在Natty上,当前已安装EncFS版本1.7.4。这与Maverick上的旧版1.6版本配合使用效果不佳。我还必须将Maverick上的EncFS更新为1.7.4(通过固定apt / preferences来完成此操作)。


0

一种可能的方法是使用两个不同的目录:

〜/ my_secret_data将不会同步,但是会加密添加到其中的所有文件,然后将加密的文件从〜/ my_secret_data / folder移动到〜/ Ubuntu One /文件夹。如果您已将GPG密钥添加到所有计算机,那么您将能够自动打开加密文件,而其他人则不能。

我认为它不是很优雅,但是应该可以。


这就是我对EncFS所做的事情。加密的数据存储在〜/ Ubuntu \ One / .encrypted中,而未加密的存储在〜/ .fuse / U1Enc中。为了方便用户,我只使用EncFS而不是GPG-数据可以随时加密/解密。
spi
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.