Ich verwende eine mehr oder weniger standardmäßige Installation von Ubuntu Precise 12.04 und bin sehr zufrieden mit der täglichen Arbeit mit der Unity-Desktop-Umgebung.
Wenn es ums Spielen geht, fühle ich mich mit LXDE jedoch viel wohler (Hintergrund: Im aktuellen Zustand erzielt Unity viel niedrigere Frameraten als z. B. Unity 2D oder LXDE - es ist ein bekannter Fehler, an dem gearbeitet wird).
Zu diesem Zweck habe ich ein Spielerbenutzerprofil erstellt und möchte es jetzt auf die Verwendung der LXDE-Desktopumgebung beschränken.
Um dies weiter zu erläutern: Wenn Sie aufgefordert werden, sich nach dem Start anzumelden, soll nur LXDE als Option für das Spielerbenutzerprofil auf dem Anmeldebildschirm angezeigt werden, während mein Standardbenutzerprofil weiterhin die Option zur Auswahl der zu verwendenden Desktopumgebung haben sollte.
Vielen Dank im Voraus für jeden Einblick, der hilfreich sein könnte!
quelle
Antworten:
Nach meinem Verständnis von LightDM (dem Anmeldemanager) scheint es nicht unterstützt zu sein, die Desktop-Umgebungen für einen bestimmten Benutzer einzuschränken . Es ist alles oder nichts. Wenn ein Benutzer eine Desktop-Umgebung auswählt, wird diese standardmäßig zu seiner Standard-Desktop-Umgebung. Wenn sie sich das nächste Mal anmelden, werden sie standardmäßig angemeldet, sofern sie keine andere auswählen.
Sie können es jedoch so gestalten, dass der Benutzer dies nicht ändern kann. Dieser Benutzer kann weiterhin eine andere Desktop-Umgebung auswählen. Wenn dies jedoch der Fall ist, wird die Standardeinstellung nicht geändert. Ich glaube, dies ist der sicherste Weg, dies zu tun, wenn Sie nicht befürchten, dass die Person es ändern wird. Alles, was Sie tun müssen, ist die
.dmrc
Datei zu bearbeiten (befindet sich in ihrem Home-Verzeichnis, dh / home / user). Hier wird ihre Standardsitzung gespeichert. Ändern Sie dieSession
Variable in dieser Datei nach Ihren Wünschen, dhubuntu
als Standard-Unity DE,ubuntu-2d
als Unity 2D undLXDE
als LXDE. Damit dies nicht geändert wird, wenn sie sich mit einem anderen DE anmelden, können wir es einfach unveränderlich (unveränderlich) machen:Jetzt kann niemand diese Datei ändern (Root und andere Programme enthalten), es sei denn, Sie entfernen das unveränderliche Flag:
Wenn Sie absolut NICHT möchten, dass sich dieser Benutzer jemals mit einem anderen DE anmeldet, habe ich einen wirklich hackigen Weg gefunden (dh dies geschieht auf eigenes Risiko), um dies zu erreichen. Ich war irgendwie gelangweilt und es schien mir eine lustige Sache zu sein, es zu versuchen. Alle verschiedenen DEs, die LightDM sehen kann, werden
/usr/share/xsessions
als.desktop
Dateien gespeichert. Zu Ihrer Information, Sie können alle diese Elemente löschen, die nicht auf dem Anmeldebildschirm angezeigt werden sollen (dies wird jedoch für ALLE Benutzer entfernt). Wenn Sie eine davon öffnen, sind sie ziemlich einfach. Dies sind grundlegende Desktop-Startdateien, genau wie alle Verknüpfungen auf Ihrem Desktop. Jeder enthält eineExec
Zeile, die ausgeführt wird, wenn Sie Ihre DE auf dem Anmeldebildschirm auswählen (dh welche DE gestartet wird). Wir werden dies nutzen und prüfen, welcher Benutzer sich anmeldet. Wenn der Benutzer unser eingeschränkter Benutzer ist, werden wir ihn zwingen, ein bestimmtes DE zu verwenden.Zunächst müssen Sie für jede
.desktop
Datei in/usr/share/xsessions/
ein Skript erstellen/usr/local/bin
. In meinem Beispiel werde ich zeigen, wie dies fürubuntu.desktop
die Unity DE gemacht wird, und LXDE als DE verwenden, zu dessen Verwendung wir unseren eingeschränkten Benutzer (eingeschränkten Benutzer) zwingen. Wenn wir uns LXDE.desktop ansehen, können wir sehen, dass derExec
Befehl ist/usr/bin/startlxde
und es keinenTryExec
Befehl gibt. Wenn Sie öffnenubuntu.desktop
, sehen wir, dass derExec
Befehl istgnome-session --session=ubuntu
und derTryExec
Befehl istunity
. DerTryExec
Befehl ist genau das, wonach er sich anhört. Nach dem Ausführen desExec
Befehls wird versucht, denTryExec
Befehl auszuführen. Wenn er jedoch fehlschlägt, stürzt er nicht ab.Wenn wir nun die Befehle aus den
.desktop
Dateien übernehmen, können wir unsere Skripte erstellen. Wir werden sie einsetzen/usr/share/bin
. Wir müssen zwei machen, eine für dieExec
und eine für dieTryExec
. Wir machen so etwas:ubuntude.sh
ubuntudetry.sh
Wir testen nur, ob die Person, die sich anmeldet, unser eingeschränkter Benutzer ist, und starten die entsprechende DE. Jetzt müssen wir sicherstellen, dass sie ausführbar sind:
Wir müssen jetzt unsere ändern
ubuntu.desktop
, damit unsere Skripte anstelle der tatsächlichen DEs aufgerufen werden. Kommentieren Sie die ZeilenExec
undTryExec
in der Datei aus und ersetzen Sie sie durch folgende:Wiederholen Sie einfach den Vorgang für alle anderen DEs, die Sie möglicherweise haben. Wenn es
TryExec
für ein DE kein gibt, muss auch kein detry.sh-Skript dafür erstellt werden, da LXDE kein a verwendetTryExec
. Dies ist natürlich etwas hackig, und Sie sollten sicherstellen, dass Sie alle Dateien sichern, bevor Sie sie bearbeiten. Dies funktioniert jedoch, wenn Sie unbedingt sicherstellen müssen, dass sich ein Benutzer bei der richtigen DE anmeldet.quelle
Bei Debian Squeeze und Wheezy können Sie auch eine .xsessionrc mit einer einzelnen Zeile hinzufügen
export STARTUP = XXX
(wobei XXX Ihr erzwungenes Sitzungsskript ist, siehe Exec-Line oben) im Benutzer-Homedirectory, um einen bestimmten Sitzungstyp zu erzwingen, unabhängig davon, was der Benutzer ausgewählt hat.
Sollte auch unter Ubuntu funktionieren.
(Sehen Sie sich /etc/X11/Xsession.d/40x11-common_xsessionrc und 50x11-common_determine-startup an, um zu sehen, warum dies funktioniert.)
quelle
Die Antwort von Reverendj1 hat bei mir nicht funktioniert. Grund könnte sein, dass der in Exec = angegebene Wert nicht direkt ausgeführt, sondern als Argument an / etc / X11 / Xsession übergeben wird. (Quelle: https://askubuntu.com/a/857420/873016 )
Eine weitere Lösung für das Problem:
1. Sichern Sie alle / usr / share / xsessions / .desktop-Dateien.
2. Löschen Sie alle / usr / share / xsessions / .desktop-Dateien.
3. Erstellen Sie nur /usr/share/xsessions/default.desktop mit
"default" ist ein Schlüsselwort für Xsession und schlägt die spezifische Sitzung im Benutzerverzeichnis nach.
4. Erstellen Sie nun für jeden Benutzernamen eine Datei /home/{username}/.xsession. Für eine "Kiosk-ähnliche" App sollte dies folgendermaßen aussehen:
Wenn beispielsweise ein anderer Benutzer einen vollständigen Desktop-Manager starten darf, könnte dies folgendermaßen aussehen:
Getestet auf Ubuntu 16.04 mit LightDM
quelle