kali发行版不使用/etc/environments文件吗?

kali发行版不使用/etc/environments文件吗?

我附加了 /etc/environments 文件的路径,现在它是这样的:

mindaugas@Kali:~$ cat /etc/environment | tr ":" "\n"
PATH="/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/sbin"

我退出并重新登录。但我的$PATH没有改变:

mindaugas@Kali:~$ echo $PATH | tr ":" "\n"
/usr/local/bin
/usr/bin
/bin
/usr/local/games
/usr/games

在 ubuntu 14.04 中执行相同的步骤更改了$PATH.

我很好奇 - 这是为什么?

答案1

在linux上,读取/etc/environment通常是由 pam_env.so登录期间的模块。该模块可能未安装在最小系统上,或者可能配置为不读取 /etc 文件,或者可能未在 /etc/pam.d/* 中配置为在登录过程中调用。看man pam_env pam

答案2

大多数 shell 中都没有编码加载的义务/etc/environment

shell 查找的确切文件以及尝试加载它们的顺序取决于您使用的实际 shell,但一般情况下,只有/etc/shellnamerc~/.shellnamerc是您绝对可以信赖的文件,通常按该顺序读取。有关详细信息,请参阅您首选 shell 的联机帮助页。

在 ubuntu 中的特定情况下,您的首选 shell 加载其配置文件/etc/和/或在创建时为您的帐户提供的配置文件/etc/skel/,并且这些配置文件中的任何一个都告诉它查找/etc/environment并加载其内容(如果它是)存在。

是的,在某些情况下这是一个方便的功能,但它不是通用的......坦率地说,它不能为一是因为不同的 shell 可以有不同的设置环境变量的方式;例如,/etc/environment源自 Bourne 类型 shell ( bashsh、 ) 的adash不适用于 C shell ( csh、 )。tcsh

长话短说:/etc/environment是一项常见但不通用的可选功能。 Kali 缺乏它并不是一个错误。

相关内容