在 Linux 下,是否可以以没有密码的任何人都无法访问的方式加密文件夹/分区?

alm*_*now 9 linux security encryption

我正在审查我拥有的不同替代方案(例如 ext4 加密),但我认为所有这些方案都很容易让 root 进入我的家庭帐户并查看其中存储的内容,当有人掌握时,这很容易做到计算机。

我正在寻找一种方法使我的文件无法访问,即使对于 root,即使有人使用裸机也是如此。如果我忘记了密钥,我愿意冒丢失数据的风险,这不是问题,它实际上是可取的。

Xen*_*050 6

  • eCryptFS 可以加密您的主文件夹(和子文件夹),并使用您的登录密码自动解密 - root 不能只是更改您的密码,它需要您的实际登录密码。该ecryptfs-migrate-home脚本/工具,可以加密现有的家庭,或者一个新用户的创建时,许多发行版可以加密一个家。它可用于大多数发行版、Debian、Mint 和 Ubuntu 衍生版、Arch、Gentoo 等。并且可以自由扩展其大小。

    或者,它也可以只使用一个加密的“私人”文件夹,使用 ecryptfs-setup-private

  • EncFS 也会对文件夹进行加密,但可能需要更多自定义以实现安全自动解密。

  • LUKS 或普通 dm-crypt 使用固定大小的容器文件或设备,不像上述基于文件的解决方案那么容易扩展,但它也没有显示那么多信息(文件号和近似大小)

  • TrueCrypt 或衍生品的工作方式类似于 LUKS

  • 许多发行版也可以安装“全盘加密”(通常使用 LUKS 和 LVM),这需要在启动时输入正确的密码。对于不需要自己重新启动的单用户(“个人”)计算机来说,这是一个很好的解决方案,但在多用户计算机上,它也会被“解密”给其他所有用户。


小智 5

您可以为此使用 dm-crypt。您需要创建一个将用作存储设备的空文件。您可以使用 dd 或例如 fallocate 创建具有特定大小的一个:

fallocate -l 512M /home/user/cryptedDevice` 
dd if=/dev/zero of=/home/user/cryptedDevice bs=1M count=512
Run Code Online (Sandbox Code Playgroud)

这将在您的主目录中创建一个名为 cryptedDevice 的 512 MB 文件。然后您可以在该文件的顶部设置 lukscryptsetup -y luksFormat /home/user/cryptedDevice使用 Luks 您可以轻松更改容器的大小等。

要打开加密文件,您可以执行以下操作: cryptsetup luksOpen /home/user/cryptedDevice someDeviceName

然后你需要用文件系统格式化这个分区: mkfs.ext4 -j /dev/mapper/someDeviceName

之后,您可以简单地将该设备安装到一个文件夹:mount /dev/mapper/someDeviceName /mnt/.

参考数字海洋