web-dev-qa-db-fra.com

Comment configurer une clé `dconf` globalement sur tous les comptes d'utilisateurs

Je veux définir la clé "automount", pour le schéma "media-handling", sur "false", pour tous les utilisateurs sur une seule machine de bureau.

Je peux le faire individuellement, c'est-à-dire un utilisateur à la fois, en utilisant gsettings tout en étant connecté en tant qu'utilisateur spécifique:

gsettings set org.gnome.desktop.media-handling automount false

Faire cela pour chaque compte individuel, cependant, est quelque peu difficile. Je voudrais définir la même clé sur "false" de manière globale, afin que le comportement souhaité soit observé à l'échelle mondiale, sur tous les comptes d'utilisateurs.

En utilisant locate media-handling J'ai localisé le fichier ‘xml’ suivant:

/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.xml

Le fichier contient les éléments suivants:

<schemalist gettext-domain="gsettings-desktop-schemas">
  <schema id="org.gnome.desktop.media-handling" path="/org/gnome/desktop/media-handling/">
    <key name="automount" type="b">
      <default>true</default>
      <summary>Whether to automatically mount media</summary>
      <description>If set to true, then Nautilus will automatically mount media such as user-visible hard disks and removable media on start-up and media insertion.</description>

J'ai compris que les fichiers situés ici étaient universels/globaux et que toute modification de ces fichiers affecterait tous les utilisateurs dans le monde. Cependant, définir la valeur ici sur "false" comme aucun effet observable.

J'ai également trouvé ceci réponse et créé le fichier de "remplacement" équivalent:

/usr/share/glib-2.0/schemas$ ls | grep media-handling
org.gnome.desktop.media-handling.gschema.override.xml
org.gnome.desktop.media-handling.gschema.xml

..avec le contenu:

[org.gnome.desktop.media-handling]
automount=”false”

L'Iran Sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ comme indiqué dans la réponse donnée, mais il n'y a pas eu d'effet observable. Pourquoi cela, en supposant que la solution donnée est correcte?

Comment définir la clé "automount" sur "false", de telle sorte qu'elle configure tous les comptes d'utilisateurs? Une fois cet objectif atteint, comment empêcher les utilisateurs individuels de configurer leur propre compte différemment de la règle globale?

Deuxièmement, comment le système utilise-t-il le fichier /usr/share/glib-2.0/org.gnome.desktop.media-handling.gschema.xml, car ma compréhension me conduirait à penser que cela modifie tous les comptes utilisateurs, étant donné son emplacement dans… .share/glib-2.0 .., mais ce n'est pas le cas?

(Ubuntu 16.04)

5
Andrew Hardiman

Ne vous méprenez pas, mais je pense qu'il existe ici un moyen plus simple que de modifier des fichiers XML.

Vous pouvez utiliser des profils basés sur dconf.
J'ai lu à ce sujet dans la documentation RedHat:

Voici un exemple approximatif de votre problème:

Sudo mkdir -p /etc/dconf/profile

cat <<EOF | Sudo tee /etc/dconf/profile/user
user-db:user
system-db:local
EOF

Sudo mkdir -p /etc/dconf/db/local.d

cat <<EOF | Sudo tee  /etc/dconf/db/local.d/00-my
[org/gnome/desktop/media-handling]
automount=false
EOF

Sudo dconf update
0
N0rbert