unix 安全地阅读密码并将其传递给多个脚本-将字符串传递给需要输入的进程

6yt4nkrj  于 2022-12-12  发布在  Unix
关注(0)|答案(1)|浏览(164)

我有一组需要密码才能工作的脚本,我对它们进行了编码,以便它们从用户输入中读取密码,而不是阅读参数或文件中读取密码,这样密码就不会保存到磁盘或显示在top上。
我想启动所有这些程序,避免多次输入相同的密码。
这个想法是让一个父脚本读取密码一次,然后以某种方式将其传递给所有这些脚本。
首先,在父级start_all.sh脚本中:
read -p "pass > " pass
现在,我还不知道如何使用$pass的值来启动需要相同密码的所有子脚本。

k3bvogb1

k3bvogb11#

假设您不想将命令行上的实际密码传递给从属脚本...
使用nameref的一个想法是:

$ head parent child
==> parent <==
#!/usr/bin/bash

stty -echo                        # disable echo of password value on command line
read -p "pass > " pass
stty echo                         # re-enable echo of command line typing

export pass                       # make available to subordinate scripts
child pass                        # pass *name* of variable containing password

==> child <==
#!/usr/bin/bash

declare -n newpass="$1"           # define nameref
echo "child/pwd: ${newpass}"

相关问题