Come posso eseguire / usr / bin / Xorg senza sudo?


8

Questa domanda riguarda l'esecuzione /usr/bin/Xorgdirettamente su Ubuntu 14.04.

E so che esiste Xdummy, ma non sono riuscito a far funzionare correttamente il driver fittizio con la GPU nvidia, quindi non è un'opzione.

Ho copiato il livello di sistema xorg.confe /usr/lib/xorg/modules, e modificata loro un po '. (Specificato anche ModulePathnel mio xorg.conf)

L'esecuzione del comando seguente come root funziona bene:

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

Ma se lo faccio come utente non root (l'autorizzazione del file di registro è OK), si verifica questo errore:

(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.

Potresti aiutarmi per favore a far funzionare Xorg senza sudo ??


Non penso che sia possibile eseguire X come non root; deve accedere direttamente a molte cose hardware e di sistema.
Dirkt

3
set setuidbit su Xorg:chmod +s $(which Xorg)
Serge

@dirkt È possibile su sistemi recenti ma non con tutti i driver. Vedi ad esempio Ubuntu , Debian , Fedora , Gentoo , Arch , ...
Gilles 'SO- smetti di essere malvagio'

Grazie ragazzi! Sembra che il tuo consiglio abbia funzionato per me!
noname,

Risposte:


5

Per determinare con chi è autorizzato a eseguire X, configuralo

dpkg-reconfigure x11-common

Esistono tre opzioni: solo root, solo utenti console o chiunque. La voce si trova in /etc/X11/Xwrapper.config.


Da Debian 9 e Ubuntu 16.04 questo file non esiste. Dopo l'installazione xserver-xorg-legacy, il file riappare e il suo contenuto deve essere modificato da:

allowed_users=console

per:

allowed_users=anybody
needs_root_rights=yes

È inoltre necessario specificare il terminale virtuale da utilizzare all'avvio di X, altrimenti potrebbero verificarsi errori. Per esempio:

Xorg :8 vt8

3

X necessita dell'accesso ai dispositivi di input (mouse e tastiera) e al monitor e alla scheda grafica per l'output.

Per ottenere ciò per X non root, puoi cambiare il gruppo di Xorgda roota input, impostare il bit setgit e aggiungere il tuo utente al gruppo video:

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

(Invece potresti aggiungere il tuo utente ad entrambi videoe input, ma questo è scoraggiato. Un utente nel gruppo inputpuò spiare gli input di altri utenti. Ad esempio una GUI in X potrebbe probabilmente spiare la password di root digitata in console / tty.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.