Starten Sie den Desktop für den angegebenen Benutzer über den Hintergrunddienst

369
Galveston01

Ich verwende ein Ubuntu 17.10 mit installiertem Gnome Desktop. In meiner rc.localDatei starte ich ein Java-Programm, das mit einem TCP-Server kommuniziert. Sobald eine bestimmte Sequenz von dieser Socket-Anwendung empfangen wird, möchte ich den aktuell laufenden Desktop beenden und stattdessen eine neue für den empfangenen Benutzer starten . U. Zugleich möchte ich nicht u sein Passwort eingeben müssen, so wie Sie nicht haben, wenn der Benutzer auf sich ändernde u durch die Ausführung su umit Root - Rechten.

Da mein Hintergrunddienst von rc.local gestartet wird, verfügt er über Root-Berechtigungen.

In meiner Anwendung möchte ich eine Reihe von Befehlen ausführen, um dies zu erreichen, aber ich habe keine Ahnung, was ausgeführt werden soll. Mein erster Ansatz bestand darin, x zu töten, sich in tty2 als u und startx einzuloggen, aber ich war nicht in der Lage, einen angegebenen Benutzer in eine bestimmte tty-Shell einzuloggen oder einen Befehl in einem bestimmten tty mit Hilfe eines Befehls auszuführen. Ich habe versucht, openvt -c 2 -f -s -u u -- startxwie es mir in diesem Thread vorgeschlagen wurde: Ubuntu loggt sich als bestimmter Benutzer in bestimmte tty-Shell ein, aber dies scheint nicht so zu funktionieren, wie ich es erwartet hatte.

Um es auf den Punkt zu bringen: Wie kann man den gnome-Desktop für einen bestimmten Benutzer durch rc.localUmgehen der Kennwortüberprüfung starten ?

Ich bin für jede Hilfe dankbar. Viele Grüße, Galveston01

0

0 Antworten auf die Frage