在Linux中,我们有/etc/environment用于存储全局变量。在 FreeBSD 中?

在Linux中,我们有/etc/environment用于存储全局变量。在 FreeBSD 中?

在 Linux 中,当我需要全局存储变量时,我使用/etc/environment. FreeBSD中对应的文件是什么?我见过这个https://www.freebsd.org/doc/en_US.ISO8859-1/articles/new-users/your-working-environment.html但这并没有给我任何线索。

答案1

最简单的选择是,就像在 Linux 上一样,在/etc.对于sh兼容的登录 shell,这将位于 中/etc/profile,而对于cshshell,它将/etc/csh.cshrc如您链接到的文章中所述。

登录环境也可以在 中设置/etc/login.conf。这不是一个 shell 脚本,而是登录类能力数据库,因此它遵循严格的格式。你应该阅读man login.conf在尝试修改它之前。

要向此文件添加两个环境变量VAR1和,您可以选择要修改和添加的登录类VAR2

:setenv=VAR1=value1,VAR2=value2:

完成后,cap_mkdb /etc/login.conf按照手册中的说明以 root 身份运行。

请注意,默认路径是不是设置为setenv.

答案2

我刚刚遇到这个问题,很好奇它是如何在 Ubuntu 系统上完成的。答案是通过聚丙烯酰胺。 LinuxPAM 模块pam_env做这个。

FreeBSD 使用开放PAM好像没有这个模块。

FreeBSD确实有登录配置文件但这不会像 那样普遍pam_env。例如,它不会为 cron 作业设置环境变量。

恐怕答案是目前还不能。它甚至在 Linux 系统上也不通用的原因是它pam_env没有在所有 Linux 系统上配置。

相关内容