我尝试创建自己的 linux bash 脚本,该脚本调用 truecrypt 进行挂载。作为选项,需要为 truecrypt 文件设置密码。我可以在 bash 脚本中执行此操作,但如果有人打开它,他们可以看到密码。该脚本稍后将自动运行。
我的问题:是否有一些安全的方法来隐藏/加密密码?
例子:
truecrypt --mount --password="testing" /home/username/test.tc /home/username/mount/
谢谢你的帮助!
使用 SHC。它使用 RC4 加密 shell 脚本,并从可以运行的 shell 脚本中生成可执行的二进制文件。
下载 SHC(http://www.datsi.fi.upm.es/~frosal/) 并安装。
使用 "truecrypt --mount --password="testing" /home/username/test.tc /home/username/mount/" 创建一个 shell 脚本并将其保存为 "yourfilename.sh"。
现在,运行命令:
shc -f 你的文件名.sh
开关“-f”指定要加密的源脚本。上述命令将创建两个文件:yourfilename.sh.xc 和 yourfilename.sh.x。
程序“shc”从您的 shell 脚本中创建 C 源代码,然后对其进行加密(yourfilename.sh.xc)。加密的 shell 脚本是:yourfilename.sh.x。运行该二进制文件并执行您的命令:
./script.sh.x
没有人能够读取密码,就没有安全的方法来存储密码。您唯一的选择是使用用户权限来限制谁可以看到它。作为一种选择,您可以使脚本仅对其中包含密码的用户可读。另一种方法是让脚本从具有类似权限集的文件中读取密码(这只是为您提供了更新脚本等的更大灵活性)。
最终,尽管任何管理员/超级用户都可以读取该文件,所以这不是您可以安全地做的事情。大多数人建议的事情是让脚本自动运行并提供一个 GUI 供用户输入密码。这些根据您的分布而有所不同,但它们通常在那里。