sou*_*edi 4 environment-variables
尽管 Strode 想转向环境变量的“现代”解决方案,但他显然感受到了来自更广泛的损坏系统暴露的压力。因此,在撰写本文时,他对该错误的最新评论是:“是的,我正在考虑对此进行讨论。” 所以Fedora 25 很可能会看到一个更新,将登录shell 恢复到登录过程;“适当的修复”将等待稍后。
现在是 Fedora 28 ......我们在“正确修复”方面处于什么位置?是否有一种前瞻性的方式让用户为他们的会话设置环境变量?
即~/.bash_profile在 Fedora 上工作的替代品,并希望在其他地方工作。
对于 GNOME 3.24,Strode恢复 gnome-session以通过运行登录 shell 加载环境变量。
在同一个评论中,他们为 gnome-session 提供了一个补丁,以将这些会话环境变量推送到 systemd 用户服务。这些包括gnome-terminal,所以它相当重要:)。
GDM 会话启动器已在 3.22 中修补,以从systemd --user. 所以将systemd环境导入到session中,然后由登录shell修改,结果也复制回systemd --user.
哪个应该可以正常工作...除了在 Fedora 28 上进行测试,它不能正常用于例如 PATH,因为 gdm 会话启动器不允许 systemd 环境变量覆盖预先存在的环境。我已经在 GNOME 问题跟踪器上报告了它。
有人认为这login(文本控制台)可能启动用户前壳接受一些补丁来加载环境配置,但有在目前为止没有变化的util-linux的v2.32。
我什至没有费心寻找 ssh 补丁:)。
systemd 环境已经在user.conf. 作为这项工作的一部分,systemd v233获得了一种environment.d/格式,现在支持在现有PATH或LD_LIBRARY_PATH搜索列表中添加一个额外的目录。
我认为为用户登录设置环境变量的最佳位置是在 PAM 模块中——我们甚至已经pam_env有了。 逻辑是
要求登录、gdm、sshd(这永远不会发生)等来做这真的是一个糟糕的解决方案。
不幸的是,pam_env发行版之间的配置令人讨厌……而且似乎有一个很好的理由。该~/.pam_environment功能被认为是安全性的“大炮”。另请参阅CVE-2010-4708。
看看
pam_exec为例。你可以想象系统管理员使用它来做一些登录后配置或其他事情,但用户可以通过设置 LD_PRELOAD 获得 root。或者 pam_selinux 实际上直接使用 pam_getenv,因此用户可以使用它。但我的观点并不是真正的这些具体例子,它只是为了说明以 root 身份执行它存在风险,我们可以完全绕过这些风险,消除一整类潜在的安全错误,只需在稍后的时间执行登录过程。作为一般规则,如果您不需要以 root 身份运行的代码,则不应以 root 身份运行!当然,我仍然很纠结,因为从逻辑上讲,以后再做会比较尴尬,但在我看来,以 root 身份做这件事比以用户身份做这件事风险更大,这是毫无疑问的。pam_exec 手册明确指出:“由 pam_exec 调用的命令需要知道用户可以控制 [原文如此] 环境。”
关于。pam_env,请注意 Fedora 将它放在 pam 堆栈的顶部并默认禁用 ~/.pam_environment。
将它放在堆栈顶部是一个错误,并且违反了不这样做的明确警告:“由于 PAM 环境变量的设置可能对其他模块产生副作用,因此该模块应该是堆栈中的最后一个。”
[...] 鉴于这里的混乱,这显然是一把枪
为此使用 shell 配置的一般想法似乎也适用于例如 Ubuntu Desktop 16.04 图形登录。但是,有一个区别。Fedora~/.bash_profile默认创建,这(对于 bash)导致~/.profile被忽略。Ubuntu 和其他基于 Debian 的发行版~/.profile默认创建。(即,当您从 中创建新用户时提供这些文件/etc/skel)。
(我最近在 Ubuntu 上使用了这个。Ubuntu 似乎随着时间的推移而改变了,因为它运行了 GUI 会话的登录 shell。例如,请参阅https://superuser.com/questions/183870/difference-between-bashrc-and-bash-profile / 183980#183980,https://askubuntu.com/questions/40287/etc-profile-not-being-sourced,“为什么不是GNOME终端登录shell” ,和“什么shell登录手段(“庆典-我')”)。
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |