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