Ubuntu 16.04 Xenial Xerus
Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
Die grafische Anmeldung über LightDM bietet eine Gastsitzung, die bei der Abmeldung komplett zurückgesetzt wird. Der Gast nutzt dann den Standard-Desktop der jeweiligen Ubuntu-Variante als eingeschränkter Benutzer. Das Speichern von Dateien ist zwar möglich, aber diese Dateien müssen vor einer Abmeldung selbst auf ein externes Speichermedium wie z.B. einen USB-Stick gesichert werden. Andernfalls sind sie unwideruflich verloren.
Wer keine Gastsitzung braucht, kann diese auch komplett deaktivieren.
Im Folgenden wird beschrieben, wie man diese Gastsitzung anpassen kann. Generell werden die Einstellungen, die das Verhalten der Gastsitzung beeinflussen, im Ordner /etc/guest-session/skel/ gespeichert. Man kann ein bestehendes Benutzerkonto, das als Vorlage für die Gastsitzung dienen soll, mit Root-Rechten [1] in diesen Ordner kopieren. Im Terminal [2] dienen dazu folgende Befehle:
Wenn Ordner noch nicht vorhanden:
sudo mkdir -p /etc/guest-session/skel
Man sollte vorzugsweise den Ordner /etc/guest-session/skel als Ziel benutzen und nicht das systemweite Verzeichnis /etc/skel, weil letzteres als Vorlage für jeden neu angelegten User genutzt wird.
sudo cp -r /home/BENUTZERNAME/* /etc/guest-session/skel
Wenn man sich nun als Gast anmeldet, sollte das Konto genau so eingerichtet sein wie das des ursprünglichen Benutzers BENUTZERNAME
. Möchte man absolut identische Einstellungen haben, kann der folgende Befehl nützlich sein, der auch Versteckte Dateien mitkopiert. Aber Vorsicht: auf diese Weise gelangen unter Umständen persönliche Daten (Kennwörter und vertrauliche Informationen) in falsche Hände!
sudo cp -r /home/BENUTZERNAME/. /etc/guest-session/skel
Möchte man nicht die gesamten Einstellungen eines anderen Benutzers übernehmen, kann man auch gezielt einzelne Dateien nach /etc/guest-session/skel/ kopieren.
Um das Hintergrundbild des Desktops der Gastsitzung festzulegen, legt man mit Root-Rechten unter /etc/guest-session/skel/.gconf/desktop/gnome/background/ (dieser Ordner ist normalerweise nicht vorhanden) die Datei %gconf.xml an [2]:
sudo mkdir -p /etc/guest-session/skel/.gconf/desktop/gnome/background/
Anschließend bearbeitet man die Datei /etc/guest-session/skel/.gconf/desktop/gnome/background/%gconf.xml [1][3]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0"?> <gconf> <entry name="secondary_color" mtime="1317669748" type="string"> <stringvalue>#000000000000</stringvalue> </entry> <entry name="picture_filename" mtime="1317669748" type="string"> <stringvalue>/usr/share/backgrounds/guest.jpg</stringvalue> </entry> <entry name="primary_color" mtime="1317669748" type="string"> <stringvalue>#000000000000</stringvalue> </entry> <entry name="color_shading_type" mtime="1317669748" type="string"> <stringvalue>solid</stringvalue> </entry> <entry name="picture_options" mtime="1317669748" type="string"> <stringvalue>stretched</stringvalue> </entry> </gconf> |
In der Zeile
1 | <stringvalue>/usr/share/backgrounds/guest.jpg</stringvalue> |
wird der Pfad zum Hintergrundbild eingetragen. Das Bild sollte im Ordner /usr/share/backgrounds/ liegen, damit der Zugriff nicht scheitert.
Wenn man erreichen möchte, dass innerhalb der Gastsitzung z.B. die GNOME Shell anstatt Unity gestartet wird, ist es am einfachsten, die GNOME Shell als Standard-Umgebung festzulegen. Dazu bearbeitet man mit Root-Rechten die Datei /etc/lightdm/lightdm.conf und ändert den Eintrag user-session=...
in:
1 | user-session=gnome-shell |
Einstellungen in anderen Konten werden nicht beeinflusst.
Möchte man z.B. in Firefox gewisse Einstellungen (Lesezeichen etc.) speichern, ist es am einfachsten, die Firefox-Einstellungen eines anderen Kontos zu verwenden. Man richtet also den Firefox nach Belieben ein und kopiert dann das Verzeichnis /home/BENUTZERNAME/.mozilla/ mit Root-Rechten nach /etc/guest-session/skel/:
sudo cp -r /home/BENUTZERNAME/.mozilla/ /etc/guest-session/skel/
Die Firefox-Einstellungen werden erst beim Beenden von Firefox gespeichert. Daher wird folgende Reihenfolge empfohlen:
Firefox einrichten
Firefox beenden
Einstellungen kopieren
Um in der Gastsitzung automatisch Programme wie z.B. Caffeine zu starten, ist es wiederum am einfachsten, bei einem bestehenden Konto das gewünschte Programm als Autostart-Programm einzurichten. Man öffnet hierzu "Startprogramme" und klickt auf "Hinzufügen". Für Caffeine gibt man in den Feldern "Name" und "Befehl" jeweils caffeine
ein und bestätigt mit "Hinzufügen".
Nun befindet sich im Ordner /home/BENUTZERNAME/.config/autostart/ eine Datei caffeine.desktop. Diese Datei kopiert man mit Root-Rechten [1] nach /etc/guest-session/skel/.config/autostart/ (dieser Ordner muss zuerst angelegt werden):
sudo mkdir -p /etc/guest-session/skel/.config/autostart/ sudo cp /home/BENUTZERNAME/.config/autostart/caffeine.desktop /etc/guest-session/skel/.config/autostart/
Fazit: Auf diese Weise können sämtliche Einstellungen und Dateien für die Gastsitzung eingerichtet werden.
Möchte man Dokumente oder Einstellungen, die in der Gastsitzung gemacht werden, auch nach dem nächsten Anmelden zur Verfügung haben, kann man in die Datei /usr/sbin/guest-account einen Kopierbefehl einfügen. Der erste Teil der Datei (unter add-acount ()
) wird beim Anmelden ausgeführt, der zweite Teil (unter remove-account ()
) beim Abmelden. Um Einstellungen zu speichern, ist nur der zweite Teil interessant.
Allgemein kopiert man Dateien aus dem temporären Homeverzeichnis des Gastbenutzers in den Ordner /etc/guest-session/skel/, von wo sie dann beim nächsten Anmelden wieder in das Homeverzeichnis kopiert werden.
Um zum Beispiel die Firefox-Einstellungen zu speichern, öffnet man die Datei /usr/sbin/guest-account mit Root-Rechten und fügt die folgende Befehlszeile unter dem Block # kill all remaining processes
ein.
cp -r "$HOME"/.mozilla/* /etc/guest-session/skel/.mozilla/
Es sollte dann etwa so aussehen:
# kill all remaining processes while ps h -u "$USER" >/dev/null; do killall -9 -u "$USER" || true sleep 0.2; done cp -r "$HOME"/.mozilla/* /etc/guest-session/skel/.mozilla/ umount "$HOME" || umount -l "$HOME" || true rm -rf "$HOME"
Auf diese Weise können selbstverständlich alle Verzeichnisse oder Dokumente gesichert werden.
Unter bestimmten Umständen kann es passieren, dass innerhalb der Gastsitzung der Bildschirm gesperrt und ein Kennwort verlangt wird. Das wird allerdings schwierig, denn die Gastsitzung verwendet bewusst kein Kennwort.
Als Gast kommt man in dieser Situation allein nicht weiter, man benötigt die Hilfe des Eigentümers des Rechners. Als solcher öffnet man beispielsweise mit Strg + Alt + F1 eine virtuelle Konsole, meldet sich an und lässt sich die aktiven Benutzer anzeigen:
users
guest-AbCdE12 (eigener Benutzername) (weitere Benutzernamen...)
Mit der Kenntnis des Namens des Gastkontos richtet man ein einfaches Kennwort ein:
sudo passwd guest-AbCdE12
Anschließend wechselt man mit Strg + Alt + F7 wieder zur Gastsitzung. Nun sollte der Gast die Bildschirmsperre wieder aufheben können. Da die Gastsitzung beim Beenden komplett gelöscht wird, ist damit auch das gesetzte Kennwort hinfällig.
Vermeiden lässt sich das Problem, wenn innerhalb des Gastkontos evtl. vorhandene Mechanismen zur Sperrung des Bildschirms vorab deaktiviert werden. Leider wird man daran als Gast kaum denken...
Wer in einem Verzeichnis ein Schreib- und Leserecht für "alle" vergibt, tut dies nicht unbedingt auch für die Gastsitzung. Diese hat zusätzliche Einschränkungen bzw. Ausnahmen, die in /etc/apparmor.d/lightdm-guest-session definiert sind. Nähere Infos auf Englisch findet man bei Askubuntu.
Diese Revision wurde am 15. März 2017 19:37 von noisefloor erstellt.