【发布时间】:2015-07-01 19:40:19
【问题描述】:
我有一个 bash 脚本,它接收用户输入并将其传递给 tcl 脚本。
问题是,一旦我运行脚本并调用第二个 tcl 脚本,在运行 ps -f 命令时,我可以看到传递参数的 tcl 脚本实例化(所有这些都是明文)。如何隐藏参数以使其不出现在 ps -f 输出中。我正在考虑改组和重新创建传递的变量,但是有没有办法将它们完全隐藏在 ps -f 输出中?
【问题讨论】:
-
不要将它们作为参数传递。使用环境(仍然显示在
/proc/etc.)或通过标准输入/其他一些 fd 传递它们。 -
stackoverflow.com/questions/7443366/… - 如果我使用环境变量,我可能会遇到类似的问题(如答案中所示)。还有其他解决方法吗?
-
您担心哪些问题?那个讨论是关于global 系统环境变量的。这不是这里要讨论的。这些用于父母和孩子之间的直接沟通(他们将留给任何孙子,除非 tcl 脚本将他们从其环境中删除,但它可以这样做)。是的,另一种选择是通过打开的 fd 或通过(临时的,在写入并通过打开的 fd 传递之前可能未链接)文件传递它们。
-
所以可能有多个用户同时运行脚本——传入不同的参数。如解决方案中所述,环境变量不会发生冲突吗? (还是我理解错了?)
-
您无法阻止
ps(使用正确的选项)查看系统上任何进程的参数或环境变量。通过文件或文件描述符发送密码。
标签: bash parameters tcl ps