GNOME instellingen vastzetten en centraal regelen

Ik ben de laatste tijd vrij veel bezig geweest met GNOME op Fedora en CentOS in mijn virtuele testnetwerk, om te testen en te kijken hoe verschillende clients zich gedragen in een FreeIPA domein.

Een van mijn doelen was het centraal kunnen regelen en/of vastzetten van een aantal instellingen in deze besturingssystemen voor de (eind)gebruiker(s). Na wat zoekwerk kwam ik erachter dat GNOME de mogelijkheid bied alle bekende configuratieinstellingen vast te zetten via een speciaal bestand in de map /etc/dconf/db/site.d/. De naam hiervan maakt niet uit, dus heb ik gekozen voor 00_site_settings om het voor mij makkelijk te houden.

Hoe vind ik instellingen die ik wil kunnen wijzigen?

Allle instellingen die er zijn kun je vinden via een applicatie als dconf-editor. Hier zie je ook meteen alle keys die je nodig hebt in je bestand(en).

Voorbeeld /etc/dconf/db/site.d/00_site_settings

# Sets a new default wallpaper
[org/gnome/desktop/background]
picture-uri="file:///usr/share/backgrounds/default-wallpaper.png"
picture-options="wallpaper"

# Sets the new default wallpaper as 
# the lockscreen as well
[org/gnome/desktop/screensaver]
picture-uri="file:///usr/share/backgrounds/default-wallpaper.png"
picture-options="wallpaper"

# Disable user switching
[org/gnome/desktop/lockdown]
disable-user-switching=true

# Set the favorite apps in the GNOME
# Shell dock
[org/gnome/shell]
favorite-apps=['firefox.desktop', 'org.gnome.Nautilus.desktop', 'libreoffice-writer.desktop', 'libreoffice-calc.desktop', 'libreoffice-impress.desktop']
development-tools=false

Iedereen die bekend is met Windows ini files zal dit bekend voorkomen. De syntax is bijna hetzelfde en erg makkelijk te lezen. Mocht je meer willen weten kun je dat op de GNOME Administrators site vinden.

In /etc/dconf/db/site.d/00_site_settings stel ik hierboven de volgende dingen in:

Keys vinden die je vast wilt zetten

Hoe vind je nu keys die je vast wilt zetten? Dit kan via applicaties als dconf-editor.

Wijzigingen toepassen

Het bestand hierboven kun je op de plaats zetten waar ik het al eerder over heb gehad, namelijk /etc/dconf/db/site.d/00_site_settings. Dit kun je op meerdere manieren doen, ansible bijvoorbeeld, dus daar ga ik het hier niet over hebben.

Zodra je dit bestand hebt geplaatst is het een kwestie van het systeem laten weten dat er een aantal instellingen gewijzigd zijn en deze toepassen. Dit kan via het shell commando $ dconf update

Echter ben je er dan nog niet helemaal. Niets weerhoud de wat slimmere gebruiker er nu van om via dconf-editor de aanpassingen terug te draaien. Dit kun je oplossen door de keys die je het gewijzigd of ingesteld te vergrendelen.

Instellingen vergrendelen

Ook dit is een kwestie van een configuratiebestand op de juiste plaats zetten met daarin de juiste instellingen. In het voorbeeld hierboven is dat /etc/dconf/db/site.d/locks/00_site_settings met daarin het volgende:

/org/gnome/desktop/background/picture-uri
/org/gnome/desktop/background/picture-options

/org/gnome/desktop/screensaver/picture-uri
/org/gnome/desktop/screensaver/picture-options

/org/gnome/desktop/lockdown/disable-user-switching

/org/gnome/shell/favorite-apps
/org/gnome/shell/development-tools

Wat hier opvalt is dat de notatie anders is. In plaats van [org/gnome/desktop/background] is het /org/gnome/desktop/background. Ook moet je het complete pad opgeven in je lockbestand, het is (nog) niet mogelijk om hele groepen in een keer te blokkeren.

Na het plaatsen van dit bestand moet je $ dconf update weer aanroepen om de instellingen definitief te vergrendelen.

Dit maakt het voor de wat handigere eindgebruiker veel lastiger om instellingen te wijzigen.

Huishoudelijke mededeling

Deze blog is nu redelijk basaal en zal binnenkort verder uitgebreid worden als ik meer tijd heb.