我有一些使用该mysql -e "{command}"
功能的BASH工具。每次使用这些工具时都要输入密码,这很麻烦,因此,为了避免将密码和代码一起写入纯文本文件中,我将其存储在内存中(使用read -s
),并在运行命令时让BASH对其进行读取。
Mysql仍然认为密码是通过命令行提交的(因为从某种意义上说是这样),并且仍然给我错误“在命令行界面上使用密码可能不安全”。
就我的目的而言,我不需要隐藏此消息。我需要知道的是,它是什么,可能使它不安全?该密码永远不会在物理上可见,因此无法进行同步浏览,甚至有人猜我的SSH密码也无法做到,因为它存储在内存中,而不是脚本本身。中间人攻击或类似的可能吗?
bash
运行命令时如何阅读?如果您这样做,mysql -p"$pass"
那么任何人都可以在中看到它ps
。
~/.my.cnf
示例中您可以通过执行以下操作来指定每个主机,[client<hostname>]
例如,[clientlocalhost]
MySQL工具会自动使用它,因此它更容易,更安全