我知道如何通过 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
直接编辑此数据库。本答案的最后一部分解释了两者的区别。dconf
gsettings
获得问题中发布的信息后,您可以通过两种不同的方式更改相应的设置。
使用您的第一个示例(设置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-frontsidedconf
。