我试图确定在 Linux 中,其他(非 root)用户是否可以观察到进程的环境变量。
直接用例是将机密放入环境变量中。这在网络上的许多地方都被讨论为不安全,但我无法将 Linux 中的确切暴露点归零。
请注意,我不是在谈论将明文机密放入文件中。另请注意,我不是在谈论暴露于 root 帐户(我认为试图隐藏 root 作为非启动者的对手的秘密)。
这个问题似乎解决了我的问题,评论将环境变量归类为完全没有安全性,或者只是被混淆了,但是如何访问它们?
在我的测试中,一个非特权用户无法通过进程表('ps auxwwe')观察另一个用户的环境变量。设置环境变量的命令(例如导出)是 shell 内置命令,不会将其放入进程表,并且扩展名不在 /proc/$pid/cmdline 中。/proc/$pid/environ 只能由进程所有者的 UID 读取。
也许混淆是在不同的操作系统或版本之间。网络上的各种(最近)来源都谴责环境变量的不安全性,但我对不同 linux 版本的抽查似乎表明这至少可以追溯到 2007 年(可能更远,但我没有盒子手测试)。
在 Linux 中,非特权用户如何观察他人进程的环境变量?