Gibt es in Linux eine Möglichkeit, zwei verschiedene Benutzer bei derselben grafischen Sitzung anzumelden?

Gibt es in Linux eine Möglichkeit, zwei verschiedene Benutzer bei derselben grafischen Sitzung anzumelden?

Was ich versuche zu tun:

Ich habe eine Maschine, die als Gerät behandelt wird. Darauf sind mehrere grafische Anwendungen geöffnet, und diese dürfen zu keinem Zeitpunkt geschlossen werden.

HumanA schaltet möglicherweise das System ein, startet die Anwendungen und sperrt dann den Bildschirm.

Es findet ein Schichtwechsel statt und HumanB übernimmt nun die Verantwortung für die Maschine.

HumanB muss sich jetzt beim System anmelden und dieselben grafischen Anwendungen sehen, die HumanA gestartet hat.

Wie ich es heute mache

Heute erreichen wir dies, indem wir ein Benutzerkonto (BenutzerX) haben und sowohl MenschA als auch MenschB das Kennwort für BenutzerX kennen.

Das Problem liegt bei der Überprüfung dieses Systems. Wenn wir feststellen würden, dass am Wochenende etwas sehr Schlimmes passiert ist, würde uns die Protokolldatei nur mitteilen, dass sich BenutzerX angemeldet hat. Dies entspricht nicht unseren Vorschriften.

Wofür ich es brauche

Ich möchte, dass MenschA und MenschB die Passwörter des jeweils anderen nicht kennen oder dass es sich um ein gemeinsames Passwort handelt.

Ich möchte, dass HumanA und HumanB sich anmelden und die gleiche grafische Benutzerumgebung sehen können.

Aus Audit-Sicht muss ich in der Lage sein, festzustellen, welcher Mensch sich zu welchem ​​Zeitpunkt angemeldet hat.

** Klarstellungen **

Dies ist eine Computer-/Monitor-/Tastatur-Konfiguration, Sie müssen sich keine Gedanken über Remote- oder SSH-Sitzungen machen.

Die Menschen nutzen das System nicht gleichzeitig.

Tricks, bei denen die Anwendung „verschiebt“ wird, dürfen bei Hochleistungsrechneraufgaben keine Unterbrechungen verursachen; selbst eine Unterbrechung von einer Millisekunde ist nicht akzeptabel.

Wir verwenden derzeit Yocto und XFCE.

Die Anwendung kann nicht neu geschrieben oder neu gestaltet werden, sie muss grafisch bleiben.

Antwort1

Sie könnten weiterhin UserX die grafische Sitzung öffnen lassen, aber eine weitere Anwendung hinzufügen, die einen Screenshot der grafischen Anwendungen macht. HumanA kann sich über diese Screenshot-Anwendung „einloggen“. Die Anwendung würde aufzeichnen, dass HumanA jetzt das System bedient.

Am Ende einer Schicht „meldet sich Mensch A ab“, indem er die Screengrab-Anwendung neu startet (über die lang laufenden grafischen Anwendungen), sodass Mensch B sich bei seiner Ankunft über die Screengrab-Anwendung „anmelden“ muss und der Benutzerwechsel aufgezeichnet werden kann.

Antwort2

Es ist ein bisschen hackig, aber ich denke, Sie könnten es schaffen, indem Sie mehrere Benutzer mit derselben UID verwenden. Sie könnten Folgendes haben /etc/passwd:

Appliance:x:1000:1000::/home/machine:/bin/bash
HumanA:x:1000:1000::/home/machine:/bin/bash
HumanB:x:1000:1000::/home/machine:/bin/bash

(plus entsprechende Einträge auf /etc/shadow, Sie können passwd HumanA)

Das System identifiziert die Benutzer tatsächlich anhand ihrer UID. Mit einem solchen Setup können Sie also sowohl HumanA (mit dem Passwort von HumanA) als auch HumanN (mit dem Passwort von HumanB) eingeben und landen in derselben Sitzung. Der für die Anmeldung angegebene Benutzer wird jedoch protokolliert.

Wenn das System die UID 1000 in einen Namen auflösen möchte, findet es das erste Ergebnis und gibt nur „Appliance“ zurück.

Der gleiche Trick könnte natürlich auch mit anderen NSS-Anbietern durchgeführt werden.

verwandte Informationen