1
<page xmlns="http://projectmallard.org/1.0/"
2
xmlns:its="http://www.w3.org/2005/11/its"
3
type="topic" style="task"
4
id="extensions-lockdown">
7
<link type="guide" xref="software#extension" />
8
<link type="seealso" xref="extensions-enable" />
9
<link type="seealso" xref="extensions" />
10
<revision pkgversion="3.12" date="2014-06-17" status="review"/>
12
<credit type="author copyright">
13
<name>Petr Kovar</name>
14
<email its:translate="no">pknbe@volny.cz</email>
18
<include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
20
<desc>Disallow the user to enable or disable GNOME Shell extensions.</desc>
23
<title>Lock down enabled extensions</title>
25
<p>In GNOME Shell, you can prevent the user from enabling or disabling
26
extensions by locking down the
27
<code>org.gnome.shell.enabled-extensions</code> and
28
<code>org.gnome.shell.development-tools</code> keys. This allows you to
29
provide a set of extensions that the user has to use.</p>
31
<p>Locking down the <code>org.gnome.shell.development-tools</code> key
32
ensures that the user cannot use GNOME Shell's integrated debugger and
33
inspector tool (<app>Looking Glass</app>) to disable any mandatory
37
<title>Lock down the org.gnome.shell.enabled-extensions and
38
org.gnome.shell.development-tools keys</title>
40
<p>Create a <code>user</code> profile in
41
<file>/etc/dconf/profile/user</file>:</p>
50
<p>Create a <code>local</code> database for machine-wide settings in
51
<file>/etc/dconf/db/local.d/00-extensions</file>:</p>
55
# List all extensions that you want to have enabled for all users
56
enabled-extensions=['<input>myextension1@myname.example.com</input>', '<input>myextension2@myname.example.com</input>']
57
# Disable access to Looking Glass
58
development-tools=false
61
<p>The <code>enabled-extensions</code> key specifies the enabled
62
extensions using the extensions' uuid
63
(<code>myextension1@myname.example.com</code> and
64
<code>myextension2@myname.example.com</code>).</p>
65
<p>The <code>development-tools</code> key is set to false to disable
66
access to Looking Glass.</p>
69
<p>Override the user's setting and prevent the user from changing it in
70
<file>/etc/dconf/db/local.d/locks/extensions</file>:</p>
73
# Lock the list of enabled extensions
74
/org/gnome/shell/enabled-extensions
75
/org/gnome/shell/development-tools
79
<include href="dconf-snippets.xml"
80
xpointer="xpointer(/*/*[@xml:id='dconf-update'])"
81
xmlns="http://www.w3.org/2001/XInclude"/>
84
<p>After locking down the <code>org.gnome.shell.enabled-extensions</code> and
85
<code>org.gnome.shell.development-tools</code> keys, any extensions installed
86
in <file>~/.local/share/gnome-shell/extensions</file> or
87
<file>/usr/share/gnome-shell/extensions</file> that are not listed in the
88
<code>org.gnome.shell.enabled-extensions</code> key will not be loaded by
89
GNOME Shell, thus preventing the user from using them.</p>