Beim Anmelden bei bestimmten Gruppen erstelltes Gastkonto hinzufügen?

Beim Anmelden bei bestimmten Gruppen erstelltes Gastkonto hinzufügen?

Diese Frage bezieht sich aufeine andere, allgemeinere Frageüber Gastkonten. Dieses ist sehr spezifisch.

Setup: Ich habe viele ältere Dell Latitude E6410s und einige neuere Dell Latitude 5450, die ich in einem Klassenzimmer mit 16.04 verwende. Viele Studenten verwenden diese Maschinen für eine Vielzahl von Zwecken, darunter Datenanalyse und Datenerfassung über angeschlossene USB-Geräte.

Gastkonten sind gut geeignet, um die Rechner zwischen den Anmeldungen zu löschen. Die zusätzliche Funktion der Gastkonten besteht darin, dass sich die Rechner beim Einschalten und „Vergessen“ automatisch beim Gastkonto anmelden und ein Browserfenster öffnen. Das Problem besteht darin, dass die Gastkonten keine Berechtigungen für den Zugriff auf die USB-Anschlüsse haben.

Eine einfache Lösung wäre, das neue Gastkonto (z. B. guest-abf2) zur Dialout- und Plugdev-Gruppe hinzuzufügen, damit die Studenten angeschlossene Geräte und USB-Sticks verwenden können. So etwas wie:

moduser -a -G plugdev,dialout $USER

in einem Skript früh genug im Anmeldevorgang, damit es funktioniert.

Folgendes habe ich bisher versucht:

  • Platzieren Sie diesen Befehl in einem der beidendokumentierte Hooks: auto.shund prefs.shim /etc/guest-sessionVerzeichnis. Keines von beiden funktioniert. prefs.shwird im Benutzerkontext ausgeführt und obwohl auto.shes im Rootkontext ausgeführt werden soll, wird es zu spät ausgeführt, um das neu erstellte Gastkonto zu den beiden Gruppen hinzuzufügen
  • Ändern der verfügbaren Skripte, die Lightdm ausführt (Ja, ich weiß, das ist nicht gut, aber ich war schon verzweifelt) und trotzdem funktioniert es nicht. Ich muss den Moduser-Befehl direkt nach der Kontoerstellung, aber vor der eigentlichen Anmeldung ausführen.
  • Entsprechendalte Dokumentation (11 oder so)Es gibt einen Hook namens, setup.shden ich ausprobiert habe, aber ich bin nicht sicher, ob dieser Hook noch funktioniert.
  • Ich habe versucht, ein Udev-Skript zu schreiben, aber das scheint furchtbar mühsam zu sein, und die Dokumentation scheint darauf ausgerichtet zu sein, USB-Sticks zu mounten und keinen Zugriff auf USB-Geräte zuzulassen. Ich könnte mich hier irren.
  • Irgendwo bin ich über eine Dokumentation gestolpert, in der es einen ähnlichen Mechanismus wie ein Skript gibt, um neue Benutzer automatisch zu bestimmten Gruppen hinzuzufügen, aber ich kann ihn nicht finden. Das könnte in diesem Fall funktionieren oder auch nicht, aber ich werde es versuchen.

Antwort1

Die Gastkonten werden durch das Shell-Skript erstellt /usr/sbin/guest-account.

Am Ende der Funktion add_accountwird aufgerufenBenutzer hinzufügenum den Benutzer zu erstellen. Wenn Sie die -G plugdev,dialoutOption hier hinzufügen, sollte das funktionieren.

Verwendendpkg-umleitenum zu vermeiden, dass ein aktualisiertes Paket Ihr geändertes Skript überschreibt.

Antwort2

Verwendenusermod, nicht ' moduser'.

... also funktioniert das Verhalten des Startskripts prefs.sh jetzt wie angekündigt. Durch Erstellen einer Datei namens prefs.sh in /etc/guest-session mit der folgenden Zeile:

moduser $USER -a -G plugdev,dialout

Dieser Befehl führt dazu, dass die Gastsitzung abstürzt und nicht geladen wird, wenn Sie ihn in einschließen prefs.sh. „moduser“ ist kein gültiger Befehl. Verwenden Sie stattdessen diese Zeile:

usermod -a -G plugdev,dialout $USER

Antwort3

auto.shwurde nie in einem Root-Kontext ausgeführt. prefs.shDies geschah bis Ubuntu 15.10, als es von als Quelle verwendet wurde /usr/sbin/guest-account, aber der Code wurde überarbeitet und in 16.04 prefs.shwird es von als Quelle verwendet /usr/share/lightdm/guest-session/setup.sh, was nicht als Root ausgeführt wird.

Ich weiß nicht, ob diese Verhaltensänderung beabsichtigt ist. Wenn nicht, gibt es möglicherweise einen Grund, eine Änderung vorzuschlagen.

Ich bin mir nicht sicher, was Sie meinen, wenn Sie sagen, dass eine Gastsitzung nicht auf die USB-Anschlüsse zugreifen kann. Ich weiß, dass Sie zumindest USB-Sticks verwenden können. Möglicherweise gibt es andere Geräte, deren Verwendung über AppArmor verhindert wird.

Bearbeiten:

Ich reichte einein Fehlerbericht. Wenn Sie die Schaltfläche akzeptieren, können Sie prefs.shden Gast wie zuvor der/den Gruppe(n) zuweisen.

Was USB-Sticks betrifft, habe ich einige Tests durchgeführt und festgestellt, dass die Formatierung des Sticks eine Rolle spielt. Mit einem als ext4 formatierten Stick konnte ich weder lesen noch schreiben, aber mit der Formatierung als fat16 funktioniert es einwandfrei.

Antwort4

Ich weiß nicht genau, wann es passiert ist, aber lightdm wurde aktualisiert, so dass das Verhalten des Startskriptsprefs.shfunktioniert jetzt wie angekündigt. Durch das Erstellen einer Datei namensprefs.shIn/etc/Gastsitzungmit der folgenden Zeile:

moduser $USER -a -G plugdev,dialout

Ich habe genau das erreicht, was ich brauchte, um Schülern den Zugriff auf neue USB-Geräte im Gastkonto zu ermöglichen.

verwandte Informationen