gsettings 如何与导出的环境变量交互和/或冲突?(Ubuntu 20.04)

gsettings 如何与导出的环境变量交互和/或冲突?(Ubuntu 20.04)

我在公司防火墙后面,一直试图使用export位于的 shell 脚本来设置我的代理设置/etc/profile.d/proxy.sh(例如, 如何使用 shell 脚本设置系统范围的代理地址?)。

在排除设置故障时,我还对“网络”GUI 进行了更改。由于我在“网络”GUI 中引入了一个错误,我无法连接,我认为该错误可能覆盖了 proxy.sh 脚本文件中的正确设置。

gsettings 如何与位于 或 中的脚本设置的环境变量交互和/或冲突/etc/profile.d//etc/environment如果发生冲突,哪些设置优先?如果我使用的是 Ubuntu Desktop(即 GUI 环境),最好使用 gsettings(从 GUI 或设置 gsettings 的脚本)编辑环境变量,以便在 GUI 中访问它们(即,我禁用了 GUI 中的代理设置,因为它们与我的脚本冲突,但现在我无法在 GUI 中看到脚本设置的设置)?任何关于最佳实践的想法都将不胜感激。

答案1

由于我找不到可靠的来源,我会说:“据我所知,在当前的 GNU/Linux 和 BSD 发行版中没有 PROXY 的全局设置。最终用户应用程序可以在任何级别使用或忽略代理设置:环境变量、桌面环境、配置……与 DNS 的情况类似”

因此,对于许多网络工具(例如:apt,firefox,wget等)它们都有自己的代理设置和优先级列表。

如果你正在寻找 Gnome 桌面环境的工具。那么可能,这是最有趣的部分:

gnome-core → glib-networking → libproxy1v5

配置模块

配置模块从源读取代理配置。每个配置模块都有一个类型。配置类型有三种:SYSTEM 在系统范围内定义配置 USER 在用户范围内定义配置

SESSION 仅为当前登录会话定义配置。模块也可以选择没有配置类型。

配置模块源(截至 0.4.15)为:direct 始终返回 direct://,这是全局后备

envvar 读取 http_proxy、https_proxy、ftp_proxy 和 no_proxy 环境变量 gnome 读取 gconf(SESSION) gnome3 读取 gsettings(SESSION) kde 读取 kconfig(SESSION) wpad 始终返回 wpad://,如果需要,这用于回退到自动检测

默认情况下,模块按以下顺序调用:

  1. 用户
  2. 会议
  3. 系统
  4. 环境变量
  5. 微软
  6. 直接的

命令之内类别未定义,可能为随机。如果某个模块表示无法找到配置,则尝试下一个模块。

模块顺序可以通过环境变量 (PX_CONFIG_ORDER) 手动指定。此变量中指示的顺序 不取代内部顺序,但会添加到其前面。因此,如果您想要优先使用 envvar(对于强制模块,请参阅上面的白名单/黑名单),则可以指定以下内容,将 envvar 放在列表的首位:export PX_CONFIG_ORDER=config_envvar

您还可以使用 /etc/proxy.conf 锁定系统上所有用户的模块顺序。此功能尚未记录(有没有人愿意帮忙!?)。

来源:https://github.com/libproxy/libproxy/wiki/HowTo#config-modules

相关内容