Wie kann ich / usr / bin / Xorg ohne sudo ausführen?


8

Bei dieser Frage geht es um die /usr/bin/Xorgdirekte Ausführung unter Ubuntu 14.04.

Und ich weiß, dass es Xdummy gibt, aber ich konnte den Dummy-Treiber nicht richtig mit der NVIDIA-GPU arbeiten lassen, daher ist dies keine Option.

Ich kopierte die systemweite xorg.confund /usr/lib/xorg/modulesund modifizierte sie ein wenig. (Auch ModulePathin meinem angegeben xorg.conf)

Das Ausführen des folgenden Befehls als root funktioniert einwandfrei:

Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./16.log -config ./xorg.conf :16

Wenn ich dies jedoch als Nicht-Root-Benutzer mache (die Berechtigung für die Protokolldatei ist in Ordnung), tritt dieser Fehler auf:

(EE) 
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 9 (Permission denied)
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "./16.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

Könnten Sie mir bitte helfen, Xorg ohne Sudo auszuführen?


Ich denke nicht, dass es möglich ist, X als Nicht-Root auszuführen. Es muss direkt auf viele Hardware- und Systemmaterialien zugreifen können.
Dirkt

3
Set setuidBit auf Xorg:chmod +s $(which Xorg)
Serge

@dirkt Es ist auf neueren Systemen möglich, aber nicht mit allen Treibern. Siehe zB Ubuntu , Debian , Fedora , Gentoo , Arch , ...
Gilles 'SO - hör auf böse zu sein'

Danke Jungs! Ihr Rat hat anscheinend bei mir funktioniert!
Noname

Antworten:


5

Um festzustellen, mit wem X ausgeführt werden darf, konfigurieren Sie es mit

dpkg-reconfigure x11-common

Es gibt drei Optionen: Nur Root, nur Konsolenbenutzer oder irgendjemand. Der Eintrag befindet sich in /etc/X11/Xwrapper.config.


Seit Debian 9 und Ubuntu 16.04 existiert diese Datei nicht mehr. Nach der Installation xserver-xorg-legacywird die Datei erneut angezeigt und ihr Inhalt muss geändert werden von:

allowed_users=console

zu:

allowed_users=anybody
needs_root_rights=yes

Sie müssen auch das virtuelle Terminal angeben, das beim Starten von X verwendet werden soll. Andernfalls können Fehler auftreten. Zum Beispiel:

Xorg :8 vt8

3

X benötigt Zugriff auf Eingabegeräte (Maus und Tastatur) sowie auf den Monitor und die Grafikkarte für die Ausgabe.

Um dies für Nicht-Root-X zu erreichen, können Sie die Gruppe von Xorgvon rootbis ändern input, das Setgit-Bit setzen und Ihren Benutzer zur Gruppe hinzufügen video:

chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video

(Stattdessen können Sie Ihren Benutzer zu beiden videound hinzufügen input, dies wird jedoch nicht empfohlen. Ein Benutzer in einer Gruppe inputkann Eingaben anderer Benutzer ausspionieren. Beispielsweise könnte eine GUI in X wahrscheinlich das in console / tty eingegebene Root-Passwort ausspionieren.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.