Modifiziertes Ubuntu im Laptop-Einsatz: Anlegen eines temporären Benutzeraccounts

Durch Anpassen von Ubuntu lassen sich die im vorangegangenen Blogbeitrag skizzierten Anforderungen an ein Mobilgerät umsetzen.

Für die Schülerinnen und Schüler wird ein Account angelegt, der bei der Anmeldung angelegt und dessen Daten nach der Abmeldung komplett gelöscht werden. Zudem werden alle Einstellungen bei der Abmeldung wieder auf die Standardwerte zurückgesetzt, sodass die Schülerinnen und Schüler die Geräte nicht „verstellen“ können. Auf diese Weise ist zudem sichergestellt, dass alle personenbezogenen Daten bei der Abmeldung vollständig gelöscht werden.

Der von Ubuntu verwendete Gnome Display Manager GDM, der die Aufgabe hat, den grafischen Anmeldebildschirm anzuzeigen und die Sitzung zu starten, lässt sich durch die Verwendung von Skripten an die eigenen Bedürfnisse anpassen. Wie dieses möglich ist, erklärt diese Seite des Gnome-Projekts:

https://help.gnome.org/admin/gdm/stable/configuration.html.en

Es besteht mithilfe dieser Skripte die Möglichkeit, ein temporäres Heimatverzeichnis für den von den Schülerinnen und Schülern verwendeten Nutzeraccount anzulegen, das nach Abmeldung wieder gelöscht wird. Hierfür muss ein PostLogin-Skript erstellt werden, das nach erfolgreicher Anmeldung ausgeführt wird. Dieses Skript hat den Dateinamen Default und muss in /etc/gdm3/PostLogin/ abgelegt werden. In unserem Fall sieht dieses Skript wie folgt aus:

#!/bin/sh
#/etc/gdm3/PostLogin/Default
guestuser="gbg"
if [[ "$USER" = "$guestuser" ]]; then mkdir /tmp/"$guestuser"
cp /etc/skel/* /tmp/"$guestuser"
chown -R "$guestuser":"$guestuser" /tmp/"$guestuser"
fi
exit 0

Dieses Skript hat die Aufgabe in /tmp/ das Heimatverzeichnis für den Nutzer „gbg“ zu erstellen, indem es das Grundgerüst für das Heimatverzeichnis aus /etc/skel/ kopiert und nach dem Kopieren den Nutzer „gbg“ zum Eigentümer seines Heimatverzeichnisses macht.

Nun muss nach dem Abmelden das Heimatverzeichnis auch wieder gelöscht und alle Einstellungen auf die Standardwerte zurückgesetzt werden. Dieses geschieht mit dem Skript Default in /etc/gdm3/PostSession/:

#!/bin/sh
#/etc/gdm3/PostSession/Default
guestuser="gbg" ## Next clear the guest user session files/folders
if [[ "$USER" = "$guestuser" ]]; then
#Löscht das Heimatverzeichnis des Nutzers
rm -rf /tmp/"$guestuser"
#Setzt alle Einstellungen auf Standardwerte zurück
dconf reset -f /
#Löscht alle W-Lan-Verbindungseinstellungen
rm /etc/NetworkManager/system-connections/*
rm /var/lib/NetworkManager/seen-bssids
rm /var/lib/NetworkManager/timestamps
#Lädt den NetworkManger neu
nmcli con reload
fi
exit 0

Dieses Skript wird, wie ich bemerkt habe, aber erst bei einem Neustart wirksam. Möchte man, dass die Dateien auch nach einfachem Ab- und wieder Anmelden, ohne dass ein Herunterfahren oder Neustart erfolgt, gelöscht werden, dann muss man in /etc/gdm3/PreSession/ ein weiteres Skript mit dem Namen Default anlegen:

#!/bin/sh
PATH="/usr/bin:$PATH"
guestuser="gbg"
if [[ "$USER" = "$guestuser" ]]; then
rm -rf /tmp/"$guestuser"
fi

Mit diesen drei Skripten erreicht man, dass Dateien über die Sitzung hinaus nicht gespeichert werden und dass das Gerät alle Einstellungen zurücksetzt. Diese Skripte setzen allerdings voraus, dass ein Benutzer existiert, der in unserem Fall „gbg“ heißt. Diesen kann man, wie folgt anlegen (die Befehle müssen als root ausgeführt werden!):

useradd -d /tmp/gbg gbg
passwd gbg
#Setzen der Gruppenzugehörigkeiten
adduser gbg dip
adduser gbg netdev
adduser gbg plugdev
adduser gbg lpadmin
adduser gbg dialout