首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制ext4加密文件

复制ext4加密文件
EN

Unix & Linux用户
提问于 2019-06-05 08:39:42
回答 1查看 943关注 0票数 3

我正在使用ext4加密。https://wiki.archlinux.org/index.php/Ext4#Using_基于文件_加密

在解密目录之前,我可以在目录中看到许多加密的文件名。

我想复制加密的文件,以便在另一台机器上解密它们。

我可以用氪星做这件事。如何使用ext4加密完成此操作。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-06-05 09:31:35

您可以看到加密和填充的文件名,但是您应该无法读取文件内容。因此,试图复制未加密的文件将导致错误,如:

代码语言:javascript
复制
cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available

所以你根本不应该这么做。实际的答案是解密,然后复制。如果您选择一个加密位置作为目标目录,该副本将被重新加密。在使用rsync/ssh的网络上,传输也将被加密。所以大多数事情都是可行的,仅仅将它存储在云中可能是不可能的。文件系统特定的加密在文件系统之外不起作用。

仅绕过读取屏障是不够的:与所有元数据都是常规文件的ecryptfs不同,ext4加密涉及隐藏在文件系统本身中的元数据,对您来说是不可见的,因此您无法轻松地复制它。

我发现的最接近的是e4crypt get_policye4crypt set_policy,它允许您使用现有密钥加密目录,而不知道明文中的实际密钥。但它只适用于空目录,而不适用于文件。

您还可以加密保险库目录,用文件填充它,然后将这些文件硬链接到根目录,然后删除保险库目录。最后,根目录中有加密的文件(内容)(您不应该对其进行加密)。文件系统只知道文件是加密的。(不建议实际这样做。)

如果你无论如何都要复印一份的话,我想你可以用迂回的方式做:

  1. 创建整个文件系统的原始dd副本。
  2. 更改文件系统UUID
  3. 删除你不想要的文件

否则,我猜您将需要一个专门的工具,它知道如何将加密的目录+元数据从一个ext4文件系统复制到另一个文件系统,但我没有找到使用e4cryptdebugfs的方法。

特别是debugfs似乎没有与策略/密码相关的特性,除了ls -r,它充分显示了加密的文件名,就像\x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axY一样,这意味着ASCII表示规则的ls显示在某种程度上是可打印的。

实际的文件名是填充到文件系统并实际存储在文件系统中 16个随机字节,但常规ls将其显示为22个ASCII字符。复制这样的文件时,传统的方法是创建一个存储为ASCII字符表示的文件,当您真的需要将它存储为随机字节时。所以这肯定会在很多层面上失败。

如果有办法的话,我就不知道:-}

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/522996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档