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 

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

编辑这些设置的不同方法

您提到的设置存储在~/.config/dconf中的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 ,这是gsettings的CLI前端。

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

为了保护dconf数据库的完整性,通常,使用gsettings被认为是更好的做法。

弗罗姆这个链接 ,我们读到:

dconf程序可以在dconf数据库上执行各种操作,例如读取或写入单个值或整个目录。 此工具直接在dconf上运行,不使用gsettings架构信息。 因此,它无法对值执行类型和一致性检查。 如果需要这样的检查,gsettings(1)实用程序是另一种选择。 你可以看到gsettings作为gsettings的cli- dconf

阅读更多关于gsettings和dconf的信息 。