从现有进程运行 bash 脚本时,用户名和密码以纯文本形式作为环境变量传递。使用以下命令。
sudo -u someuser USERNAME=abc PASSWORD=xyz /path/to/script/bashscript argument1 argument2
上面的 bash 脚本是具有用户名和密码的用户可配置脚本。我上面面临的挑战是,环境变量被记录下来。就像我们不想要的 auth.log 一样。
我正在寻找实现以下目标之一的方法:
- 为了防止其记录(到 auth.log)。
- 在退出进程(c 程序)中加密用户名和密码并作为环境变量传递,并在 bash 脚本中使用某种方式解密。
我尝试寻找解决方案。没有找到适合我用例的解决方案。有人能帮我吗?我还想知道其他使系统更安全的方法。
答案1
根据
RSyslog 文档 - 过滤条件,您可以在过滤器文件中添加自定义字符串过滤器,rsyslog
如/etc/rsyslog.d/anyname.conf
,通过使用一些标识字符串来记录此命令的消息:
:msg, contains, "bashscript" stop
查看帖子 如何停止特定用户的 auth.log 中的 sudo PAM 消息? 尤其是 not2qubit 的答案。
(不幸的是,我无法亲自测试。)