如前所述,ecryptfs并非解决我的问题的方法,因为我的主文件夹已被ecryptfs加密。将“ Ubuntu One”文件夹移出主目录树也不是解决方案,因为其余的“ Ubuntu One”内容不再加密。
我决定改用EncFS。设置加密文件夹非常简单。但是如何自动安装它,以便应用程序可以使用它来存储配置文件?有一些解决方案:
- pam_mount
- gnome-encfs
- autofs
- 灌输
我不喜欢想法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来完成此操作)。