如果通过脚本或命令行将密码提供给进程,如何隐藏 ps

如果通过脚本或命令行将密码提供给进程,如何隐藏 ps

我有一个程序,它几乎每周 7 天、每天 24 小时都在运行。

我有一个用 bash 编写的启动脚本,它只执行以下任务:

./app --user XXX --pass YYY

还有其他一些选项,但与这个问题无关。

一旦运行,通行证将始终显示在附言对于其他用户,我猜其他地方也是如此。我该如何防止这种情况发生?应用程序无法修改,我唯一的选择是以某种方式传递密码时进行修改。

通过脚本启动应用程序也很重要,因为我要在几台机器上自动启动和关闭它。每次都手动输入并不是一个好办法。

然而我不需要它在 Bash 脚本本身中不可读。如果它在那里是纯文本,那就没问题,我只需要在其他地方保护它,以便其他用户能够检查正在运行的进程,例如附言

答案1

安全的解决方案是以命令行选项以外的其他方式传递密码。最常见的两种方式是环境变量或让程序从文件中读取密码。

如果程序尚不支持这些方法,则可能需要对程序本身进行更改。

另一种不太安全的方法(但仍然比现在的方法更好)是让程序将密码从命令行复制到内存中的另一个位置,然后擦除存储命令行的内存位置。

这种方法不太安全,因为它在程序启动时仍会短暂可见。有些程序已经这样做了,但如果程序还没有这样做,则需要修改程序才能做到这一点。

相关内容