blo*_*gpg 5 command-line privacy gsettings dconf
我知道如何通过 GUI(系统设置 > 安全和隐私)更改隐私设置,但我希望能够从命令行执行此操作。
我运行了命令:
dconf watch /
Run Code Online (Sandbox Code Playgroud)
以查看进行了哪些更改。关于命令(来自man dconf):
watch
Watch a key or directory for changes.
Run Code Online (Sandbox Code Playgroud)
随后,我通过 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
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何使用此信息从命令行更改设置?
您提到的设置dconf以~/.config/dconf(二进制格式)存储在数据库中。该数据库可以直接使用dconf或通过进行编辑gsettings。本答案的最后一部分解释了差异。
获得发布在问题中的信息后,您可以通过两种不同的方式更改相应的设置。
使用您的第一个示例(设置remember-recent-files):
使用 dconf 写:
dconf write /org/gnome/desktop/privacy/remember-recent-files false
Run Code Online (Sandbox Code Playgroud)
或者
使用 gsettings 集:
gsettings set org.gnome.desktop.privacy remember-recent-files false
Run Code Online (Sandbox Code Playgroud)
同样,读取当前设置:
使用 dconf 读取:
dconf read /org/gnome/desktop/privacy/remember-recent-files
Run Code Online (Sandbox Code Playgroud)
或者
使用 gsettings 得到:
gsettings get org.gnome.desktop.privacy remember-recent-files
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,您dconf直接编辑数据库,在后一种情况下您使用的gsettings是 dconf 的 CLI 前端。
为了保护dconf数据库的完整性,一般来说,使用gsettings.
从这个链接,我们读到:
dconf 程序可以对 dconf 数据库执行各种操作,例如读取或写入单个值或整个目录。该工具直接在 dconf 上运行,不使用 gsettings 架构信息。因此,它无法对值执行类型和一致性检查。如果需要此类检查,gsettings(1) 实用程序是一种替代方法。您可以
gsettings将 cli-frontside 视为dconf.