如何以编程方式禁用“连接检查”?

CHo*_*edt 8 gsettings 18.04

我刚刚安装了 Ubuntu 18.04 并通过我所有的 dotfile 脚本尽可能地自动正确配置 Ubuntu。通过 gsettings 循环我能够根据需要配置大多数设置,但我没有在 gsettings 中找到任何与“连接检查”相关的内容,这是 Ubuntu 18.04 LTS 中的新功能(至少不包含在 16.04 LTS 中)。

我可以关闭连接检查,Settings -> Privacy但如何以编程方式执行此操作?直接卸载network-manager-config-connectivity-ubuntu?我能够通过 gsettings 关闭其他隐私设置。

https://packages.ubuntu.com/bionic/all/network-manager-config-connectivity-ubuntu/filelist查看这个包的文件列表表明只有一个设置文件 ( /usr/lib/NetworkManager/conf.d/20-connectivity-ubuntu.conf) 但它没有显示任何可能性启用/禁用该功能。

任何帮助表示赞赏。

小智 8

/var/lib/NetworkManager/NetworkManager-intern.conf如果您在 UI 中禁用该设置,则文件中有一个标志设置为 false:

[connectivity] 
.set.enabled=false
Run Code Online (Sandbox Code Playgroud)

您可以使用该工具crudini通过命令行或脚本设置标志:

sudo crudini --set /var/lib/NetworkManager/NetworkManager-intern.conf "connectivity" ".set.enabled" "false"
Run Code Online (Sandbox Code Playgroud)

出于某种原因,ui 在重新启动之前不会更新(没有测试注销/登录)。也许还有其他一些命令行工具可以进行更改并确保 UI 也得到更新。

顺便说一句:我使用以下命令来获取最近更改的文件(到目前为止只检查了 /var 和 ~):

sudo find /var -newermt "-1 minute" -ls
Run Code Online (Sandbox Code Playgroud)

gsettings 没有任何更改。我使用以下命令监控设置:

dconf watch /
Run Code Online (Sandbox Code Playgroud)

  • `/var/lib/NetworkManager/NetworkManager-intern.conf` 是内部的,不应修改,正如那里的代码注释所说。如果你想通过配置文件编辑设置,最好把一个片段放到`/etc/NetworkManager/conf.d`。或者,使用 D-Bus `busctl --system set-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager ConnectivityCheckEnabled "b" 1` 它确实会将配置写入内部文件。 (2认同)

And*_*rra 6

我只是想补充一点,您还可以通过简单地创建一个空文件来禁用连接检查:

sudo touch /etc/NetworkManager/conf.d/20-connectivity-ubuntu.conf
Run Code Online (Sandbox Code Playgroud)

该文件将覆盖 中找到的任何设置/usr/lib/NetworkManager/conf.d/20-connectivity-ubuntu.conf