保护作为环境变量传递的用户名和密码

保护作为环境变量传递的用户名和密码

从现有进程运行 bash 脚本时,用户名和密码以纯文本形式作为环境变量传递。使用以下命令。

sudo -u someuser USERNAME=abc PASSWORD=xyz /path/to/script/bashscript argument1 argument2

上面的 bash 脚本是具有用户名和密码的用户可配置脚本。我上面面临的挑战是,环境变量被记录下来。就像我们不想要的 auth.log 一样。

我正在寻找实现以下目标之一的方法:

  1. 为了防止其记录(到 auth.log)。
  2. 在退出进程(c 程序)中加密用户名和密码并作为环境变量传递,并在 bash 脚本中使用某种方式解密。

我尝试寻找解决方案。没有找到适合我用例的解决方案。有人能帮我吗?我还想知道其他使系统更安全的方法。

答案1

根据 RSyslog 文档 - 过滤条件,您可以在过滤器文件中添加自定义字符串过滤器,rsyslog/etc/rsyslog.d/anyname.conf,通过使用一些标识字符串来记录此命令的消息:

:msg, contains, "bashscript"       stop

查看帖子 如何停止特定用户的 auth.log 中的 sudo PAM 消息? 尤其是 not2qubit 的答案

(不幸的是,我无法亲自测试。)

相关内容