【问题标题】:How to avoid ksh to save a password from command line?如何避免 ksh 从命令行保存密码?
【发布时间】:2016-05-02 13:51:38
【问题描述】:

我在ksh 中编写了一个脚本,它在命令行中接收密码作为参数,例如: myscript.sh -u myid -p mypwd

问题是这个脚本使用了一个服务ID,团队中的任何人都可以使用,这样,密码将保存在ksh命令历史记录中,这可能是审计的一个问题。

另外,如果有人在执行过程中执行ps -ef|grep myscript,他/她将能够捕获命令行中提供的密码

我的主要目标是有一种方法可以调用脚本,但不知何故没有将密码保存在历史记录中,如果可能的话,避免在 ps -ef 输出中也有密码

我知道如何完全禁用历史记录,但我做不到,因为历史记录可能出于审计原因可用。

bash 目前不是一个选项。 我可以编辑脚本本身,但我在服务器上没有 root 身份验证。

此脚本与其他脚本一起被调用多次(有时,+100 次),因此,在每次交互时从 STDIN 获取此脚本是行不通的。

有没有人想办法做到这一点?

【问题讨论】:

    标签: shell ksh


    【解决方案1】:

    更改脚本以从 STDIN 读取密码而不是作为命令行参数?您可以使用内置的 shell 'read' 来执行此操作。

    【讨论】:

    • 对不起@abasterfield,我没有提到,但这也不是一个选择。这个脚本被另一个脚本循环调用,+100 次......然后我不能每次都输入密码。我将更新问题以澄清这一点
    【解决方案2】:

    将密码存储在用户可读的文件中。有脚本:

    1. 从命令行接受文件名(默认为合理的名称,例如$HOME/.script_secret),
    2. (可选)确保文件仅供用户读取,然后
    3. 从文件中读取秘密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-10
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多