Linux - 保护环境变量

Gau*_*rav 8 linux security bash

只是想知道是否有任何方法可以保护*nix系统中的环境变量,使得它们无法从任何纯文本文件中读取,但在环境中可用.

我知道我们总是可以使用.bashrc/.bash_profile的文件系统级别权限,但如果要完全隐藏某些变量(如数据库密码)呢?

一种方法是将某种程序/ perl脚本编写为:

  1. 从纯文本文件中获取输入并加密/散列内容(然后删除纯文本文件)
  2. 使用相同的方法来解密文件运行时并从解密的输出中导出值(我知道这个程序可以用来在某处转储解密的值,但我现在并不关心)

有没有其他更好,更明显的方法来实现这一目标?

谢谢!

-Gaurav

J-1*_*DiZ 5

没门.即使你将它隐藏在文本文件中,它仍然可以从/proc/<pid>/environ(linux)或ps e(其他unix)获得.

  • 严格来说,这不是正确的-在现代内核发行版上,其他非root用户看不到`environ`文件。 (2认同)
  • 使用完变量后可以取消设置吗?它还会出现在`/proc/&lt;pid&gt;/environ` 中吗? (2认同)

Jon*_*ler 3

你要保护他们免受谁的侵害?

最简洁的答案是不”。用户可以看到他们自己的环境变量,除非你将它们彻底封闭起来,使他们永远无法访问 shell。但你让他们使用哪个编辑器呢?你说的是“vim”吗?哦,毕竟他们可以访问 shell。