我有以下期望脚本执行'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)?
答案 0 :(得分:0)
请勿在此处使用eval
。这可能是灾难性的,具体取决于密码的内容。这应该足够了:
spawn /myexe $pwd
在myexe运行时执行ps -ef
的任何人都可以看到密码。