如何编写涉及 dm-crypt / luks 卷的挂载命令脚本

如何编写涉及 dm-crypt / luks 卷的挂载命令脚本

我正在尝试编写一个脚本,该脚本将使用作为参数传递给该脚本的密码来挂载加密卷(dm-crypt / luks)。

我的问题是我找不到让该脚本正常运行的方法......

例如,当我运行这个时:

mount /my/encrypted/path > file.txt 2>&1

它仍然向我显示脚本外的密码问题并让我输入密码...就像 mount 命令找到了一种逃避我设置的重定向的方法一样......

因此,我现在无法输入密码,因为询问我密码的部分在我的脚本之外运行.....

mount 是如何找到逃避重定向的方法的?我不知道。

我是否需要更改一些配置文件?我不知道。

mount 是否有一些 luks 特定的命令?我不知道。

如何通过脚本安装加密卷,而无需与我的脚本进行“人工”交互(又名:我的脚本输入密码)?

我知道我试图实现的目标可能存在安全风险......但密码将以安全的方式传输到脚本(因此不必担心它可能涉及的潜在安全风险)。

如果这很重要:我尝试在 Ubuntu 64 位 11.10 下实现这一点。

答案1

mount 是否有一些 luks 特定的命令?我不知道。

不,整个加密部分是由 -toolscrypsetup和进行管理的/etc/crypttab,两者都有有价值的man-pages。

如何通过脚本挂载加密卷,而无需与脚本进行“人工”交互(即:我的脚本输入密码)?

您可以使用密钥文件代替密码。请参阅上述文档或在网上搜索教程和示例。还有一个脚本/lib/cryptsetup/scripts/decrypt_derived允许使用解锁的 luks 设备作为密钥。您还可以在网上找到有关该主题的帮助。

答案2

我终于在另一个网站上找到了答案。

为了使用 mount 编写密码过程脚本,您可以通过将密码重定向到 stdin 来完成。

为了做到这一点,你必须指定要使用 stdin 作为密码的挂载,即选项“-p 0”

自动挂载加密卷的脚本如下:

mount /your/encrypted/path -p 0 <<EOF
The password
EOF

这是现有的写入 stdin 的方法之一。这种方法不太安全,但是为了展示概念,它是最简单的方法。

此致。

相关内容