use*_*015 14 encryption mount ecryptfs
我想使用 ecryptfs 加密一个随机目录(即,不是我的主目录或其子目录,主要是由于我的主分区的磁盘空间限制)并在我登录我的帐户时挂载该目录。我看不出如何做到这一点,或者即使使用现有软件真的可以做到。我看过一些帖子提供了含糊的建议(例如,mount.ecryptfs_private与 ALIAS 选项一起使用),但我还没有找到有关如何执行此操作的简单分步说明。有人能够提供这些说明或指导我到哪里找到它们吗?
Xen*_*050 10
您只查看像ecryptsfs-setup-privateand这样的超级简单脚本ecryptsfs-mount-private,它们使用您似乎正在寻找的更“通用”的工具:mount.ecryptfsand ecryptfs-add-passphrase。有关man更多信息,请参阅他们的页面。
Rinzwind 发布的链接包含您需要的所有信息,位于Manual Setup下的页面下方。它们很长,但非常非常短的版本是:
首先根据需要选择 ALIAS。通过本节,ALIAS 将是秘密的。创建所需的目录/文件:
$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig
Run Code Online (Sandbox Code Playgroud)
该~/.secret目录将保存加密数据。该~/secret目录是~/.secret将作为 ecryptfs 文件系统挂载的挂载点。
[现在创建实际的挂载密码(简单的脚本将从中选择一个伪随机的 32 个字符/dev/urandom),使它成为一个好的]
$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase:
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring
Run Code Online (Sandbox Code Playgroud)
将上一个命令的输出签名 (ecryptfs_sig) 写入 ~/.ecryptfs/secret.sig:
$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
Run Code Online (Sandbox Code Playgroud)
可以使用用于文件名加密的第二个密码短语。如果您选择这样做,请将其添加到密钥环中:
$ ecryptfs-add-passphrase
Passphrase:
Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
Run Code Online (Sandbox Code Playgroud)
如果您运行上面的命令,请将其输出签名(ecryptfs_fnek_sig)附加到 ~/.ecryptfs/secret.sig:
$ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
Run Code Online (Sandbox Code Playgroud)最后,将 ~/.secret 挂载到 ~/secret 上:
$ mount.ecryptfs_private secret
Run Code Online (Sandbox Code Playgroud)
要卸载 ~/.secret:
$ umount.ecryptfs_private secret
Run Code Online (Sandbox Code Playgroud)
或者你真的可以亲自动手并按照没有 ecryptfs-utils 的说明进行操作。
或者,如果您已经看过简单的脚本ecryptsfs-setup-private& ecryptsfs-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]".
Run Code Online (Sandbox Code Playgroud)而且,加密的主文件夹通常将文件存储在/home/.ecryptfs/user/. 你可以不同时使用两者,eCryptfs不会做嵌套加密的文件夹。但是拥有一个加密的家和家外的加密文件夹是可以的。
我只是尝试创建一个带有加密家庭的新用户 sudo adduser --encrypt-home jack
它创建了一个/home/.ecryptfs/文件夹,其中包含:
/home/.ecryptfs/jack/.ecryptfs/ - 包装密码和配置文件以在登录时自动挂载 jack 的家/home/.ecryptfs/jack/.Private/- 实际加密的主文件,/home/jack/登录时挂载。
还有/home/jack/文件夹,但它包含一个链接,无论是否登录,该链接都会留在那里:
/home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs
接下来我以 jack 身份登录,但链接仍然存在,因此尝试运行ecryptfs-setup-private导致它查看/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 作者和维护者
在 jack 家外更改 ALIAS 文件夹,尝试/tmp/.secret/并 /tmp/secret/ 有效。但是,如果 jack 注销,新的加密文件夹将保持挂载状态,因此您必须卸载它 ( umount.ecryptfs_private secret)。
小智 -1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data
Run Code Online (Sandbox Code Playgroud)
例如:
ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY
Run Code Online (Sandbox Code Playgroud)
使用上面的命令创建并安装加密系统,其中保存在 RANDOMDIRECTORY 中的文件被加密并保存到 EFILES 中。
补充笔记。开始时请确保 RANDOMDIRECTORY 为空。运行上述命令后,系统已安装并准备就绪,如果系统已安装,您保存在 RANDOMDIRECTORY 中的任何文件都将被加密到 EFILES 中。为了快速安装/卸载,您可以创建一个 bash 脚本,并通过应用程序快捷方式运行它,或者创建一个别名命令以快速安装。
我已经使用这个一年多了。
编辑:回家确认,你的命令不是 ecryptfs。它的 encfs 即
encfs /destination/encrypted /destination/unencrypted
Run Code Online (Sandbox Code Playgroud)
对于那个很抱歉。这样你就必须安装一个新程序(可能)