我正在尝试编写一个脚本,该脚本将使用作为参数传递给该脚本的密码来挂载加密卷(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 的方法之一。这种方法不太安全,但是为了展示概念,它是最简单的方法。
此致。