#!/bin/bash command-name secret
在运行命令时,我可以通过ps -ef |读取grep命令名,这是秘密。
有没有办法以通过ps -ef,命令行参数被模糊化的方式隐藏秘密?
#!/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中嗅出完整的命令行。