linux - expect的 'spawn'命令传参是否安全?

标签 linux bash passwords expect spawn

我有以下 expect 脚本,它执行“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”可执行文件。有人知道期望执行的“产卵”是否足够安全?密码在其他地方是否可见(例如/proc)?

最佳答案

不要在这里使用eval。根据密码的内容,这可能是灾难性的。这应该足够了:

spawn /myexe $pwd

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

关于linux - expect的 'spawn'命令传参是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593175/

相关文章:

php - 在 pdf 上生成未找到图像或键入未知 barryvdh\dompdf 错误

linux - 将在 linux 中运行汇编代码的结果重定向到文本文件

html - 如何在网站上的多个登录字段上使用自动填充

ruby - 如何确保一次只运行一个 Ruby 脚本实例?

C-Linux-有什么方法可以将命令 "history"传递给 Linux shell?

bash - 按周数拆分 csv 文件的简单 bash 脚本

使用 PROMPT_COMMAND 时,Python venv 模块无法将虚拟环境名称添加到 PS1?

bash - 为什么不打印单个玩家的最高分数?

Mysql加密类型

iphone - 如何在 iOS 钥匙串(keychain)中添加另一个密码?