如何将ecryptfs与非主目录一起使用

我想使用ecryptfs加密随机目录(即,不是我的主目录或其子目录,主要是由于我的主分区上的磁盘空间限制),并在我登录我的帐户时挂载该目录。 我无法看到如何做到这一点,即使现有软件确实可行。 我看过提供模糊建议的post(例如,将mount.ecryptfs_private与ALIAS选项一起使用),但我还没有找到关于如何执行此操作的简单逐步说明。 有人能够提供这些说明或指导我到哪里找到它们吗?

你只关注像ecryptsfs-setup-privateecryptsfs-mount-private这样的超级简单脚本,他们使用你似乎在寻找的更“通用”的工具: mount.ecryptfsecryptfs-add-passphrase 。 有关详细信息,请参阅其man页。

Rinzwind发布的链接提供了您需要的所有信息,在手动设置下的页面下方。 它们很长,但非常短的版本是:


“手动设置”方式(archlinux wiki)

首先根据需要选择ALIAS。 通过本节,ALIAS将是秘密的。 创建所需的目录/文件:

 $ mkdir ~/.secret ~/secret ~/.ecryptfs $ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig 

~/.secret目录将保存加密数据。 ~/secret目录是挂载点,其中~/.secret将作为ecryptfs文件系统挂载。

[现在创建实际的挂载密码 (简单脚本将从/dev/urandom选择一个伪随机的32个字符),使其成为一个好的]

 $ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf $ ecryptfs-add-passphrase Passphrase: Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring 

将上一个命令的输出签名(ecryptfs_sig)写入〜/ .ecryptfs / secret.sig:

 $ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig 
  • 可以使用用于文件名加密的第二密码短语。 如果您选择这样,请将其添加到密钥环:

     $ ecryptfs-add-passphrase Passphrase: Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring 

    如果运行上面的命令,请将其输出签名(ecryptfs_fnek_sig)附加到〜/ .ecryptfs / secret.sig:

     $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig 

最后,在〜/ secret上挂载〜/ .secret:

 $ mount.ecryptfs_private secret 

要卸载〜/ .secret:

 $ umount.ecryptfs_private secret 

  • 或者你可以自己弄脏自己的手,并遵循没有ecryptfs-utils的指示。

  • 或者,如果您已经查看了简单的脚本ecryptsfs-setup-privateecryptsfs-mount-private ,您可以复制它们并编辑它们以指向您的首选目录,只需要一点技巧和耐心。

  • 或者只是以某种方式自己存储密码(最好是安全地)并且像man ecryptfs页面的例子一样(必须阅读手册页):

     The following command will layover mount eCryptfs on /secret with a passphrase contained in a file stored on secure media mounted at /mnt/usb/. mount -t ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret Where file.txt contains the contents "passphrase_passwd=[passphrase]". 

除了加密的主文件夹和家里的加密文件夹 – 嵌套的eCryptfs文件夹

并且,加密的主文件夹通常在/home/.ecryptfs/user/存储文件,而加密的Private文件夹在您自己的主文件夹中包含文件。 你不能同时使用两者,eCryptfs不会做嵌套的加密文件夹。 但是拥有一个加密的家庭和家外的加密文件夹是可以的。

  • 我刚尝试使用加密的家庭sudo adduser --encrypt-home jack创建一个新用户

    它创建了一个/home/.ecryptfs/文件夹,其中包含:

    • /home/.ecryptfs/jack/.ecryptfs/ – 在登录时将passphrase&config文件包装到automount jack的主页
    • /home/.ecryptfs/jack/.Private/ – 实际加密的家庭文件,登录时挂载到/home/jack/

      还有/home/jack/文件夹,但它包含一个链接,无论是否登录都会保留在那里:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • 接下来我登录为jack,但链接仍然存在,所以尝试运行ecryptfs-setup-private导致它查看/home/jack/.ecryptfs/但是真的看到/home/jack/.ecryptfs/的现有文件/home/.ecryptfs/jack/.ecryptfs因此无法创建另一个密码文件并且失败并显示ERROR: wrapped-passphrase file already exists, use --force to overwrite.

      尝试上面的“ALIAS”步骤,使用加密主页内的 .secret文件夹失败,出现以下错误:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      “eCryptfs不支持在加密目录中嵌套加密目录。抱歉。” – eCryptfs作者和维护者

    • 更改插孔家外的ALIAS文件夹,尝试/tmp/.secret/ 工作 。 但是如果杰克日志输出,则新的加密文件夹将保持挂载状态 ,因此您必须卸载它( umount.ecryptfs_private secret )。

如果你想像encfs一样使用它,你可以使用/etc/fstab的以下条目来完成它

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim是秘密的德语词,但确保它不是关键词。 您必须首先创建目录。 你应该第一次离开ecryptfs_fnek_sig=1f7aefb9e239099f 。 然后mount /tmp/geheim会显示正确的值。

您可以将密码存储在其他位置并设置更复杂的选项。 你会发现man ecryptfs所有选项。

 ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data 

例如:

 ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY 

使用上面的命令创建并挂载加密系统,其中保存在RANDOMDIRECTORY中的文件被加密并保存到EFILES。

补充说明。 开始时确保RANDOMDIRECTORY为空。 一旦您运行上述命令,系统已安装并准备就绪,如果系统已挂载,您在RANDOMDIRECTORY中保存的所有文件都将加密到EFILES。 对于快速moount / unmount,您可以创建bash脚本,并通过应用程序快捷方式运行它,也可以创建别名命令以进行快速安装。

我已经用了一年多了。

编辑:回家确认,你的命令不是ecryptfs。 它的包围即

 encfs /destination/encrypted /destination/unencrypted 

对于那个很抱歉。 有了这个,你将不得不安装一个新的程序(可能)