访问挂载文件夹时挂载 LUKS 加密的 EXT4 格式的映像文件(使用 autofs)

访问挂载文件夹时挂载 LUKS 加密的 EXT4 格式的映像文件(使用 autofs)

这就是我想做的。使用autofs在访问目标目录时自动挂载加密的luks镜像文件。

我一直在使用 fstab 和 crypttab,但没有运气。

我不想使用密钥文件来解密它。尝试查询目标挂载文件夹/加密时,应出现密码提示窗口。 cryptsetup 应该挂载位于 /secret/data.img 的文件,该文件是 LUKS 格式的文件,解密后包含 ETX4 文件系统。然后,该文件系统应安装在 /encrypted 处,但前提是提示用户输入其密码。

额外的问题,经过一段时间的空闲(超时)不活动后,autofs 应该关闭 luks 卷,以便进一步访问需要重新输入密钥。

这可以做到吗?

这是我当前的 fstab 和 crypttab。

--FSTAB--

UUID=11111111-2222-3333-4444-555555555555 /encrypted ext4 defaults,auto,x-systemd.automount,uid=1234,gid=1234,cache=no,rw 0 0

--CRYPTTAB--

trust-no-1 /secret/data.img none auto,rw

不存在同时包含 autofs 和 luks 关键字的问题。这可能吗?

答案1

x-systemd.automount当您在 中指定选项时/etc/fstab,您实际上是在调用创建 systemd.automount单元。它提供自动挂载功能,但与经典子系统完全无关autofs

问题是,经典的autofs和较新的 systemd.automount单元都不是用户会话(或任何交互式会话)的一部分,因此它们无法轻松显示密码提示。您需要一个服务,该服务具有用于实际执行安装的系统部分,以及作为用户会话的一部分运行的用户界面组件。诸如 D-Bus 之类的东西可用于它们之间的通信。

udisks将是最接近的现有解决方案,但我不确定它是否会尝试以您设想的方式处理加密的图像文件。即使这样做,也需要安装点/encrypted与加密映像相关联的信息/secret/data.img。但是系统上可以有多个用户:每当有人尝试访问时,为任何人/每个人弹出一个密码输入对话框/encrypted会向所有用户显示系统上存在加密的内容,这在某些情况下是不可取的......

您的fstab和组合crypttab不可能满足您的要求,因为fstab它是通过文件系统 UUID 引用加密图像...但在加密解锁之前,该文件系统 UUID 是看不到的。因此,基于该fstab行生成的自动挂载单元将在激活时发现不存在具有该 UUID 的文件系统,并得出结论:设备丢失或线路上存在错误fstab

没有任何东西可以作为该crypttab行与该行相关的线索fstab:只有在加密解锁后才能发现这两条配置行之间的连接。

crypttab选项auto似乎还不是标准的(还?)。它的相反,noauto,存在于 Debian 中(至少),但这意味着在系统启动过程中应该忽略加密的设备/映像。因此,通过扩展,auto意味着“在系统启动过程中激活此 crypttab 条目”,这是默认设置......并且与您想要发生的情况相反。如果您的(未指定)发行版以其他方式定义了此关键字,那么您将不得不依赖特定于发行版的文档;我无法猜测该选项的确切技术含义。

相关内容