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

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

我刚刚安装了 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),但没有显示启用/禁用该功能的任何可能性。

任何帮助都将受到赞赏。

答案1

2022 年更新:请注意 - 即使这个答案被接受 - 根据 thaller 的评论,内部配置文件不应手动编辑。提到的解决方案是:将配置文件添加到 /etc/NetworkManager/conf.d 目录 -文档

您可以将其他 .conf 文件添加到 /etc/NetworkManager/conf.d 目录。这些文件将按顺序读取,后面的文件将覆盖前面的文件。

或者使用 D-Bus:busctl --system set-property org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager ConnectivityCheckEnabled "b" 0

(我自己还没有测试过这些选项)

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

[connectivity] 
.set.enabled=false

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

sudo crudini --set /var/lib/NetworkManager/NetworkManager-intern.conf "connectivity" ".set.enabled" "false"

由于某种原因,直到重新启动后,用户界面才会更新(未测试注销/登录)。也许有其他命令行工具可以进行更改并确保用户界面也得到更新。

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

sudo find /var -newermt "-1 minute" -ls

gsettings 没有任何变化。我使用以下命令监视了设置:

dconf watch /

答案2

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

sudo touch /etc/NetworkManager/conf.d/20-connectivity-ubuntu.conf

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

相关内容