gsettings-通过命令行更改隐私设置

gsettings-通过命令行更改隐私设置

我知道如何通过 GUI(系统设置>安全和隐私)更改隐私设置,但我希望能够通过命令行进行更改。

我做了什么来找出答案

我运行了以下命令:

dconf watch /

查看做了哪些更改。关于命令(来自man dconf):

watch
    Watch a key or directory for changes.

随后,我通过 GUI 更改了设置,以查看命令输出中发生了什么。结果显示:

/org/gnome/desktop/privacy/remember-recent-files false
/com/canonical/unity/lenses/remote-content-search 'none'
/org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false
/org/gnome/desktop/screensaver/lock-enabled false

我的问题是:如何使用这些信息从命令行更改设置?

答案1

编辑这些设置的不同方法

您提到的设置存储在dconf数据库中(二进制格式)。可以使用或通过~/.config/dconf直接编辑此数据库。本答案的最后一部分解释了两者的区别。dconfgsettings

获得问题中发布的信息后,您可以通过两种不同的方式更改相应的设置。
使用您的第一个示例(设置remember-recent-files):

使用 dconf 写入:

dconf write /org/gnome/desktop/privacy/remember-recent-files false

或者

使用 gsettings 设置:

gsettings set org.gnome.desktop.privacy remember-recent-files false

相似地,阅读当前设置:

使用 dconf 读取:

dconf read /org/gnome/desktop/privacy/remember-recent-files

或者

使用 gsettings 获取:

gsettings get org.gnome.desktop.privacy remember-recent-files

在第一种情况下,您可以dconf直接编辑数据库,在后一种情况下,您可以使用gsettings,它是 dconf 的 CLI 前端。

我更喜欢哪种方式;dconf 还是 gsettings?

为了保护数据库的完整性dconf,一般来说,使用 是更好的做法gsettings

弗罗姆此链接, 我们读:

dconf 程序可以对 dconf 数据库执行各种操作,例如读取或写入单个值或整个目录。此工具直接对 dconf 进行操作,而不使用 gsettings 架构信息。因此,它无法对值执行类型和一致性检查。如果需要进行此类检查,可以使用 gsettings(1) 实用程序。您可以将其视为gsettings的 cli-frontside dconf

阅读更多设定dconf

相关内容