Modifiziertes Ubuntu im Laptop-Einsatz: Automatische Updates deaktivieren

Bei unseren Mobilgeräten haben die Schülerinnen und Schüler keine Möglichkeit, Programme oder Updates zu installieren. Aus diesem Grund ist es unnötig und sogar störend, wenn Ubuntu auf zur Verfügung stehende Updates hinweist.

Dieses Verhalten lässt sich ändern, wenn man die Konfigurationsdatei /etc/apt/apt.conf.d/10periodic bearbeitet. Dabei ist in der ersten Zeile die Zahl 1 zu einer 0 zu verändern:


#Alt:

APT::Periodic::Update-Package-Lists "1";

#Neu:

APT::Periodic::Update-Package-Lists "0";

Modifiziertes Ubuntu im Laptop-Einsatz: Lesezeichen für IServ-webdav-Laufwerk bei Anmeldung erstellen

Auf unseren Laptops werden keinerlei Daten dauerhaft gespeichert. Aus diesem Grund müssen die Schülerinnen und Schüler bearbeitete Dateien in der Cloud speichern. Wir nutzen an unserer Schule zurzeit den IServ-Schulserver, der es den Nutzerinnen und Nutzern ermöglicht, auf ihre Dateien über ein webdav-Laufwerk zuzugreifen.

Das Hinzufügen eines webdav-Laufwerks im Dateimanager ist für erfahrene Computernutzerinnen und -nutzer sicherlich kein Problem. Allerdings sind Einstellungen nötig, für die man genaue Informationen über die Erreichbarkeit des Speichers benötigt. Über diese Informationen verfügen Schülerinnen und Schüler in der Regel nicht. Aus diesem Grund soll nach dem Anmelden direkt ein fertig konfiguriertes Lesezeichen erstellt werden, was nur noch im Dateimanager angeklickt werden muss, um eine Verbindung herzustellen.

Hierfür benötigt man ein kleines Bash-Skript („erstelle_lesezeichen.sh“), was nach dem IServ-Benutzernamen fragt und dann das Lesezeichen passend anlegt. Dieses Skript sollte in /usr/local/bin abgelegt und ausführbar gemacht werden.


#!/bin/bash

if ! NAME=$(zenity --entry --text "IServ-Benutzername:" --title "Nutzername"); then
exit;
fi

sed "s/\__NUTZERNAME/$NAME/g" /etc/skel/.templates/bookmarks_TEMPLATE >~/.config/gtk-3.0/bookmarks

Dieses Skript erfordert eine Blanko-Lesezeichendatei („bookmarks_TEMPLATE“), die wie folgt aussehen muss und die ich in /etc/skel/.templates/ abgelegt habe:


davs://__NUTZERNAME@gbg-seelze.eu/webdav IServ

Damit das Skript zur Abfrage des Benutzernamens und zum Anlegen des Lesezeichens auch nach der Anmeldung automatisch startet, muss man hierfür in /etc/xdg/autostart/ eine *.desktop-Datei anlegen:


[Desktop Entry]
Type=Application
Name=IServ-Lesezeichen erstellen
Exec=/usr/local/bin/erstelle_lesezeichen.sh
X-GNOME-Autostart-enabled=true

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