在 Linux 系统上,我已经看到文件.profile
和.bash_profile
具有~
权限-rw-r--r--
。
人们似乎经常将各种环境变量放入这些文件中,包括 AWS 密钥等。
这些非所有者 R 位不会使这些文件具有广泛的可读性,因为主目录本身通过具有drwx------
.这是有道理的。
然而。
这不会增加潜在的攻击面吗?许多 Linux 发行版默认启用这些 R 位的原因是什么?目前有任何有效的具体用例吗?
顺便说一句,.bash_history
有-rw-------
。所以它看起来比主题中的文件更私密。不清楚为什么。
答案1
首先,默认配置文件不包含密码,并且这些文件中的信息通常不敏感,敏感信息很少进入其中,并且通常不会发生太大变化。如果您要将敏感信息放入其中,则可以当时更改权限。最好将敏感信息放在单独的文件中,并从配置文件中获取。另一方面,.bash_history
可以包含大量私人信息,包括最近的活动。
其次,无论如何使用命令,环境变量都是世界可读的ps
,因此无论如何将敏感信息放入环境变量中都是不安全的,因此将环境设置放入.bashrc
然后使其世界可读并不会显着降低安全性,因为环境变量已经是世界性的可读。
答案2
那是错的;它们不应该是可读的。它们可能包含敏感信息,例如带有 API 密钥的环境变量定义等。
在 TXR 语言中,我对此做了一些事情。如果启动交互式会话,它会检查启动文件的权限并进行诊断。
$ ls -l ~/.txr_profile
-rw-r----- 1 kaz kaz 775 Aug 2 2021 /home/kaz/.txr_profile
$ txr
This is the TXR Lisp interactive listener of TXR 292.
Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
Merry GNUsmas, dear FSF friends! ... Crap, wait. That's 'Samsung' backwards!
1>
$ chmod go+r ~/.txr_profile
$ txr
This is the TXR Lisp interactive listener of TXR 292.
Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
** security problem: /home/kaz/.txr_profile is readable by others
1>
请注意,它没有执行配置文件(因此我们看不到随机引用)。如果您使用错误的权限创建配置文件,那么您放入其中的任何内容都将无法运行:要使其正常工作,您必须修复权限。
Bash 历史记录是私有的,因为 Bash 创建该文件,而不是您的发行版,并且 Bash 使用正确的创建掩码。
但是,如果我更改~/.bash_history
为rw-r--r--
,甚至rw-rw-rw-
,并启动一个新的 Bash 实例,我不会看到任何警告。哎呀!