为什么.profile和.bash_profile具有非所有者R权限?

为什么.profile和.bash_profile具有非所有者R权限?

在 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_historyrw-r--r--,甚至rw-rw-rw-,并启动一个新的 Bash 实例,我不会看到任何警告。哎呀!

相关内容