【问题标题】:Hiding variables from ps -f output when passing values from bash to tcl script将值从 bash 传递到 tcl 脚本时隐藏 ps -f 输出中的变量
【发布时间】: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


【解决方案1】:

我会将输入的凭据保存到脚本 1 中的文件中,然后从脚本 2 中的文件中读取凭据,然后删除该文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2018-02-27
    相关资源
    最近更新 更多