bash – 从Unix上的命令行参数隐藏秘密

前端之家收集整理的这篇文章主要介绍了bash – 从Unix上的命令行参数隐藏秘密前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个脚本,在其中启动一个带有一个秘密参数的命令。例如:
#!/bin/bash
command-name secret

在运行命令时,我可以通过ps -ef |读取grep命令名,这是秘密。

有没有办法以通过ps -ef,命令行参数被模糊化的方式隐藏秘密?

如果秘密在执行之间没有改变,请使用特殊的配置文件“.appsecrets”。将所有权限的文件权限设置为只读。文件内部设置环境变量为秘密。该文件需要在运行命令的用户的主目录中。
#!/bin/bash  
#filename: .appsecrets
set SECRET=polkalover

加载配置文件,以便设置环境变量。

. ~/.appsecrets

我看过的完成了

1)
echo $ SECRET |命令

如果命令从stdin AND提示输入密码,并且“echo”是您的shell的内置函数,则可以正常工作。我们正在使用Korn。

2)
密码= $ ENV { “秘密”};

如果您有代码的控制(例如perl或C)

3)
。 ./.app.config #sets环境变量
isql -host [host] -user [user] -password<& SECRET
$ {} sqlPASSWORD
秘密

如果命令可以接受std-in中的秘密,则可以工作。一个限制是<< string必须是给命令的最后一个参数。如果存在必须在-password之后出现的非可选参数,这可能会很麻烦 这种方法的好处是你可以安排它,所以秘密可以隐藏在生产中。在生产中使用相同的文件名,但它将在生产中运行命令的帐户的主目录中。然后,您可以锁定访问秘密的权限,就像访问根帐户一样。只有某些人可以’su’到prod帐户查看或维护秘密,而开发人员仍然可以运行程序,因为他们在他们的主目录中使用自己的’.appsecret’文件。 您可以使用此方法来存储任何数量的应用程序的安全信息,只要他们为其秘密使用不同的环境变量名称即可。 (错误方法)我看到使用DBA的一个旧方法是将SYBASE设置为“/opt/././././././././././././././././././././././”。 /./././././././././././././././././sybase/bin”。所以他们的命令行已经很久了ps被截断了。但是在linux中,我想你可能能够从/ proc中嗅出完整的命令行。

猜你在找的Bash相关文章