expect的'spawn'命令是否安全地传递了参数?

时间:2016-01-04 14:17:56

标签: linux bash passwords expect spawn

我有以下期望脚本执行'myexe'并传递一些密码作为参数:

#!/usr/bin/expect
gets stdin pwd

log_user 0

eval spawn "/myexe ${pwd}"

log_user 1
expect eof
catch wait result
exit [lindex $result 3]

我的可执行文件'myexe'是编译的Linux可执行文件(不是shell脚本),其目标是安全地传递密码。不幸的是,可执行文件不会读取密码的标准输入,而是将其视为起始参数。

当我执行以下期望脚本时,我无法通过'ps'看到我的'myexe'可执行文件。有人知道期望执行的'spawn'是否足够安全?密码是否会在其他地方可见(例如/ proc)?

1 个答案:

答案 0 :(得分:0)

请勿在此处使用eval。这可能是灾难性的,具体取决于密码的内容。这应该足够了:

spawn /myexe $pwd

在myexe运行时执行ps -ef的任何人都可以看到密码。