在了解了在命令行中使用密码的问题后,我需要找到一种方法来为程序提供密码而不会出现问题(密码不会被记录在某处)。
我有一个 bash 脚本,它可以从源代码自动安装整个 LAMP 服务器:Apache、FastCGI、PHP 和 MySQL。这些安装需要密码,尤其是 MySQL。
如何在不泄露密码的情况下使脚本完全自动化?
编辑(UTC 时间 6 月 9 日,3:55):
我在命令行上通过 root 使用密码调用 mysql:
root@dor-desktop:/home/dor# PASS=`cat /home/dor/tmpf/pass`
root@dor-desktop:/home/dor# mysql -u root -p"$PASS"
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Run Code Online (Sandbox Code Playgroud)
(在我们的例子中,PASS="p4ssw0rd")
我ps aux | grep mysql通过我的普通用户(dor)执行,它没有显示密码!
(一些)ps输出是:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3562 0.0 0.0 34156 2864 pts/0 S+ 05:53 …Run Code Online (Sandbox Code Playgroud)