Gastsitzung

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Root-Rechte erlangen

  2. Ein Terminal öffnen

  3. Einen Editor öffnen

Inhaltsverzeichnis
  1. Vorhandenes Benutzerkonto als Muster
  2. Einzelne Einstellungen ändern
  3. Problembehebung
  4. Links

Wiki/Icons/Oxygen/preferences-system-login.png 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.

Vorhandenes Benutzerkonto als Muster

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 

Einzelne Einstellungen ändern

Möchte man nicht die gesamten Einstellungen eines anderen Benutzers übernehmen, kann man auch gezielt einzelne Dateien nach /etc/guest-session/skel/ kopieren.

Desktop-Hintergrund (GNOME und Unity)

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.

Sitzung

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

Hinweis:

Einstellungen in anderen Konten werden nicht beeinflusst.

Programm-Einstellungen

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:

  1. Firefox einrichten

  2. Firefox beenden

  3. Einstellungen kopieren

Autostart-Programme

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.

Einstellungen und Dokumente speichern

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.

Problembehebung

Kennwort für Gastsitzung

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...

Rechtevergabe unwirksam

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.