如何在我的Linux系统下为每个人设置环境变量?

2024-10-12 10:28:00
admin
原创
248
摘要:问题描述:我可以设置适用于所有用户的通用设置吗?解决方案 1:就像/etc/profile其他人提到的那样,一些 Linux 系统现在使用目录/etc/profile.d/;其中的任何.sh文件都将由 提供/etc/profile。将自定义环境内容保存在这些文件中比直接编辑 稍微简洁一些/etc/profil...

问题描述:

我可以设置适用于所有用户的通用设置吗?


解决方案 1:

就像/etc/profile其他人提到的那样,一些 Linux 系统现在使用目录/etc/profile.d/;其中的任何.sh文件都将由 提供/etc/profile。将自定义环境内容保存在这些文件中比直接编辑 稍微简洁一些/etc/profile

解决方案 2:

如果你的LinuxOS有这个文件:

/etc/environment

您可以使用它为所有用户永久设置环境变量。

摘自:http: //www.sysadmit.com/2016/04/linux-variables-de-entorno-permanentes.html

解决方案 3:

人 8 pam_env

人5 pam_env.conf

如果所有登录服务都使用PAM,并且所有登录服务都session required pam_env.so在其各自的配置文件中,那么所有登录会话都会具有一些按照配置文件/etc/pam.d/*中指定的方式设置的环境变量。pam_env

在大多数现代 Linux 发行版中,这些都是默认存在的——只需将您想要的全局环境变量添加到即可/etc/security/pam_env.conf

无论用户的 shell 是什么,这都可以工作,并且也适用于图形登录(如果 xdm/kdm/gdm/entrance/... 是这样设置的)。

解决方案 4:

令人惊讶的是,Unix 和 Linux 实际上没有设置全局环境变量的地方。您能做的最好的事情就是安排任何特定的 shell 进行特定于站点的初始化。

如果您将其放入 中/etc/profile,那么大多数兼容 posix 的 shell 用户都可以使用。对于非关键用途来说,这可能“足够好”。

但是任何拥有cshtcshshell 的人都不会看到它,并且我不相信csh有一个全局初始化文件。

解决方案 5:

bash 手册页中的一些有趣的摘录:

当 bash 作为交互式登录 shell 调用时,或者作为带有--login选项的非交互式 shell 调用时,它首先从文件 读取并执行命令/etc/profile(如果该文件存在)。读取该文件后,它会按顺序查找~/.bash_profile
~/.bash_login~/.profile,并从第一个存在且可读的文件中读取并执行命令。--noprofile可以在启动 shell 时使用该选项来抑制此行为。...

启动非登录 shell 的交互式 shell 时,如果存在和文件,bash 将从
/etc/bash.bashrc和中读取并执行命令~/.bashrc。可以使用--norc选项来抑制此行为。file选项将强制 bash 从文件而不是和 中
--rcfile读取并执行命令。/etc/bash.bashrc`~/.bashrc`

因此,请查看/etc/profile/etc/bash.bashrc,这些文件是全局设置的正确位置。在其中输入类似以下内容来设置环境变量:

export MY_VAR=xxx

解决方案 6:

在 Linux 内核下运行的每个进程都会获得从其父进程继承的、自己独有的环境。在这种情况下,父进程要么是 shell 本身(生成子 shell),要么是“登录”程序(在典型系统上)。

由于每个进程的环境都受到保护,因此无法向每个正在运行的进程“注入”环境变量,因此即使您修改了默认 shell .rc / profile,它也只有在每个进程退出并重新加载其启动设置后才会生效。

查看 /etc/ 以修改任何特定 shell 的默认启动变量。只需意识到用户可以(并且经常)在他们自己的设置中更改它们。

Unix 的设计目的是在一定限制内服从用户。

注意:Bash 不是您系统上的唯一shell。请仔细注意 /bin/sh 符号链接实际指向的内容。在许多系统上,这实际上可能是dash,它(默认情况下,没有特殊调用)在 POSIXLY 上是正确的。因此,您应该小心修改这两个默认值,否则以 /bin/sh 开头的脚本将不会继承您的全局默认值。同样,在编辑两者时,请小心避免使用只有bash才能理解的语法,即avoiding bashisms

解决方案 7:

使用 PAM 非常好。

# modify the display PAM
$ cat /etc/security/pam_env.conf 
# BEFORE: $ export DISPLAY=:0.0 && python /var/tmp/myproject/click.py &
# AFTER : $ python $abc/click.py &
DISPLAY  DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
abc   DEFAULT=/var/tmp/myproject
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2577  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1553  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   26  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   21  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   18  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用