如何避免ksh从命令行保存密码?

时间:2016-05-02 13:51:38

标签: shell ksh

我在- textViewDidEndEditing:编写了一个脚本,它在命令行中接收一个密码作为参数,如: ksh

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

此外,如果有人在执行期间执行myscript.sh -u myid -p mypwd,他/她将能够捕获命令行中提供的密码

我的主要目标是有一种方法来调用脚本,但不知道在历史记录中没有保存密码,如果可能的话,请避免在ps -ef|grep myscript输出

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

目前

ps -ef不是一种选择。 我可以编辑脚本本身,但我在服务器上没有root身份验证。

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

有没有人看到实现这个目标的方法?

2 个答案:

答案 0 :(得分:0)

更改脚本以从STDIN读取密码而不是命令行参数?你可以使用内置的shell'阅读'这样做。

答案 1 :(得分:0)

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

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