Gastaccount unter Ubuntu?

Moin,

Hintergrund meiner Frage: Wir haben einen für Gäste zugänglichen, hoffnungslos veralteten PC unter einer nicht mehr supporteten Windows Version mit einem “normalen” Passwort geschütztem Account. Anwendungsfall ist vor allem Websurfen & Office. Aus HW, security & ideologischen Gründen würde ich den gerne durch einen neueren PC mit einem aktuellen Ubuntu LTS ersetzen. Bis Ubuntu 16.04 gab es über lightdm einen Gastnutzer.

Hat jemand Erfahrung/Beispiel/Anleitung/Link um einen Gastnutzer unter einem aktuellen Ubuntu einzurichten?
Was mir spontan als Anforderung einfällt: Standardpasswort, “frisches” Profil bei jeder Anmeldung, vorkonfiguriertes Profil (kein Amazonbutton, Startseite im Firefox, …), Einschränkung um das OS nicht zu zerstören, Updates im Hintergrund, …
Wenn niemand was weiß, würde ich vermutlich mit ein paar Bash-Scripten bei boot und shutdown anfangen…

Simon

Oh ja, habe Erfahrungen. Insgesamt gute. Und ich meine es geht auch unter 18.04 noch mit lightdm (aber musst halt lightdm installieren und konfigurieren, was nicht mehr default ist; schau mal ob das nicht bei XUbuntu noch läuft).
Ich kann in den nächsten Tagen dazu etwas schreiben, gerade zu wenig Zeit.
Wenn der Rechner genug RAM hat, kannst du dir auch schonmal overlay-fs ansehen.

Ich wollte das ganze mal paketieren, aber habe das nicht weiter verfolgt. Wäre vielleicht wert, das nun nochmal aufzufrischen: https://github.com/ecovillage/7linden-public-lxde .

Huhu,
die Funktion des Gastaccounts gab es bis 16.04 LTS. Sie wurde wegen einer Sicherheitslücke in lightdm/AppArmor zunächst deaktiviert, und es gab anschließend nicht genügend Interesse, den Fehler zu beheben. Für mich schwer nachvollziehbar, weil ich es für einen solchen Kiosk-Modus fantastisch finde.

Wir sind denn auch mit diversen “öffentlichen” PCs auf 16.04 stehengeblieben. Support gibt es ja noch bis April 2021. Eine 120GB-SSD für zwanzig Euro dazu wirkt übrigens wahre Wunder - die eingesetzten PCs sind alle um die zehn Jahre alt.

Man kann das Feature wohl auch in höheren Releases auf eigene Gefahr wieder aktivieren: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1663157

These patches ship LightDM with guest support disabled by default. You can re-enable it by putting a config file with higher priority containing:

[Seat:*]
allow-guest=true

e.g. put this in:

/etc/lightdm/lightdm.conf (if editing manually)
/etc/lightdm/lightdm.conf.d/enable-guest.conf (if managing with snippets)
/usr/share/lightdm/lightdm.conf.d/99-enable-guest.conf (if shipping in a package)

Mir ist das aber nicht gelungen - daher die Rolle rückwärts auf 16.04 (und Deaktivieren der Updates auf neue Major-Releases).

Bei unserem Gast-Odroid (sowas wie Raspberry 3.x, heute sollte man wohl einen Pi 4 nehmen) funktioniert das mit dem Gäste-Account und 18.04.

Und: wenn man mit (root) overlay-fs arbeitet (was mir leider im odroid nicht gelungen ist, im raspbian aber vermutlich klappt) ist die Lücke nicht mehr dramatisch, allerdings braucht man ein etwas vertrackteres Setup oder mehr RAM (der odroid hat 2GB, das reicht nicht wirklich).
Weiterer Vorteil (dafür hatte ich es damals angedacht und ziemlich viel Arbeit reingesteckt - bin letztendlich an hardcore-Kernel-Modul-kompilieren-etc gescheitert): Die SD-Karte wird weniger durch Schreibzugriffe geschrubbt und man braucht das Gerät nicht wirklich runterfahren, sondern nimmt einfach aller Hardware per Steckerleiste dem Strom (wenn kein Elektrotechniker zuguckt).

@Simon Willst du das Projekt Gäste-Ubuntus gerade ernsthaft angehen? Hättest du etwas dagegen, ein Topic auf englisch zu erstellen bzw ich könnte eines erstellen? Ich glaube dass das für viele Menschen von Interesse ist. Und die Skripte und Anmerkungen im o.g. git-repo mit zu verwalten (wir nutzen die skripte übrigends selber nicht, aber ich glaube das war damals schon relativ weit)?

Wenn ich vor Weihnachten noch Zeit finde, würde ich gerne mal einen PC damit aufsetzen. Wichtig wäre mir möglichst nahe am Standard zu bleiben um nicht so viel Aufwand in der Wartung zu haben. Das Ding soll da stehen und funktionieren, inkl. automatischer (Sicherheits-) Updates. :slight_smile:
Mag daher auch nicht ein altes 16.04 nehmen (zumal da die Sicherheitslücke ja nach wie vor ungepatched ist!) noch den Displaymanager wechseln. HW Specs kenne ich noch nicht, muss mal schauen was ich bei uns noch rumstehen habe…
Simon

Die Sicherheitslücke bedeutet bei einer Standard-Desktop-Installation vor allem, dass sich die Gastnutzerin - wenn sie Nutzernamen und Passwort eines anderen Nutzers kennt - via su als dieser Nutzer einloggen kann und - bei entsprechenden Permissions - auch ohne Login in andere /home/-Verzeichnisse schauen kann, oder habe ich etwas übersehen. Für einen Gästerechner (der nicht nebenbei anders produktiv genutzt wird) sind das recht verträgliche “Lücken” finde ich. Zumal ja wahrscheinlich auch die Hardware nicht völlig abgeriegelt ist und damit ebenfalls ein Einfallstor besteht.

Den Nutzer, der in der sudoers steht könnte man dann noch runterriegeln; Passwort entfernen und nur login via ssh + Schlüssel erlauben …

Mit den automatischen Updates und Wartungsfreiheit ist das so eine Sache. “Updates werden durchgeführt. Bitte schalten sie den Rechner nicht aus.” wird irgendwie meistens als dringends durchzuführende Anweisung, aber ohne das “nicht” interpretiert …

Ich fände es cool wenn wir da Wissen, Erfahrungen und Skripte zusammenschmeißen würden! Und ich habe noch ein gotcha: Die temporären Gast-Nutzer werden nicht abgeräumt, verbrauchen aber eine GID aus dem Systembereich. Wenn der auf 1000 begrenzt ist, bekommst du nach ca. 800 Gäste-Logins ein ziemlich seltsames Verhalten beim Einloggen. Ein Skript um die Gast-Nutzer und -Gruppen wieder aufzuräumen habe ich in ecovillage/operations liegen.

So, ein Ubuntu 18.04 ist auf einem i3 mit 4GB RAM und 1TB HDD aufgesetzt. Das mit dem Gastaccount-Feature scheint mir etwas buggy (GID-Verbrauch) und wenig zukunftsträchtig. Daher würde ich es lieber mit Bordmitteln und etwas Bash-Vodoo machen. Ich sehe gerade zwei prinzipielle Wege:

  1. Ein permanenter Nutzer, der ein temporäres Home-Verzeichnis bekommt, dass bei jeder Anmeldung neu erzeugt wird (aus Vorlage oder so). Ggf. via overlayFS mit einem Vorlage-Home als lower dir (wobei ich den Mehrwert von overlayFS an der Stelle noch nicht sehe). Oder auch Home nach /tmp (ggf. im RAM) legen, dann ist es mit jedem Neustart weg.
  2. Ein temporärer Nutzer, der bei jedem Booten neu erstellt wird (ggf. auch aus einem Template heraus kopiert, oder mittels Skripten ein paar Defaultdinge mitbekommt). Hier müsste ich noch überlegen was passiert, wenn sich ein Nutzer nur abmeldet, der PC in Standby geht anstatt herunter gefahren wird usw.

Gibt es eine 3. Möglichkeit? Welche der Möglichkeiten favorisiert ihr aus welchen Gründen?
Simon

1 Like