Hey*_*Hey 2 security bash shell-script environment-variables
我的脚本需要多次调用需要密码的程序,该密码只能作为环境变量传递。因为我只想向用户询问密码一次,所以我这样做了:
read -s PASSPHRASE
export PASSPHRASE
program some_option
program some_other_option
program yet_another_option
PASSPHRASE=""
Run Code Online (Sandbox Code Playgroud)
据我了解,PASSPHRASE
变量的内容只能由当前 shell 访问,并且program
在三个调用期间,然后变量被重置,其他任何人都无法访问密码。
我是对的,还是我做错了?
我担心系统上的其他用户(不包括root
)以及在我的用户帐户上运行的其他程序。
定义“安全”
因此,root 可以在短时间内读取该 env var,并且同一用户运行的其他程序可以在短时间内读取该 env var
解决方案:
如果您不想导出 env var,您可以像这样调用您的命令:
$PASSPHRASE command-name -option
Run Code Online (Sandbox Code Playgroud)
可能会让事情更安全一些,但是由同一用户运行的其他程序仍然可能会通过一些技巧(ktrace/strace,调试)看到它们
归档时间: |
|
查看次数: |
1306 次 |
最近记录: |