Comment exécuter / usr / bin / Xorg sans sudo?

8

Cette question concerne l'exécution /usr/bin/Xorgdirectement sur Ubuntu 14.04.

Et je sais qu'il existe Xdummy, mais je ne pouvais pas faire fonctionner correctement le pilote factice avec le GPU nvidia, ce n'est donc pas une option.

J'ai copié l'ensemble du système xorg.confet /usr/lib/xorg/modules, et les ai modifiés un peu. (Spécifié ModulePathdans mon xorg.confaussi)

L'exécution de la commande suivante en tant que root fonctionne correctement:

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

Mais si je le fais en tant qu'utilisateur non root (l'autorisation de fichier journal est OK), cette erreur se produit:

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

Pourriez-vous s'il vous plaît m'aider à exécuter Xorg sans sudo ??

sans nom
la source
Je ne pense pas qu'il soit possible d'exécuter X en tant que non root; il doit accéder directement à de nombreux éléments matériels et système.
dirkt
3
mettre le setuidbit sur Xorg:chmod +s $(which Xorg)
Serge
@dirkt C'est possible sur les systèmes récents mais pas avec tous les pilotes. Voir par exemple Ubuntu , Debian , Fedora , Gentoo , Arch ,…
Gilles 'SO- arrête d'être méchant'
Merci les gars! Il semble que vos conseils aient fonctionné pour moi!
noname

Réponses:

5

Pour déterminer qui est autorisé à exécuter X, configurez-le avec

dpkg-reconfigure x11-common

Il existe trois options: root uniquement, utilisateurs de la console uniquement ou n'importe qui. L'entrée est située dans /etc/X11/Xwrapper.config.


Depuis Debian 9 et Ubuntu 16.04, ce fichier n'existe pas. Après l'installation xserver-xorg-legacy, le fichier réapparaît et son contenu doit être changé de:

allowed_users=console

à:

allowed_users=anybody
needs_root_rights=yes

Vous devez également spécifier le terminal virtuel à utiliser lors du démarrage de X, sinon des erreurs peuvent se produire. Par exemple:

Xorg :8 vt8
mviereck
la source
3

X doit avoir accès aux périphériques d'entrée (souris et clavier) ainsi qu'au moniteur et à la carte graphique pour la sortie.

Pour atteindre cet objectif pour X non-root, vous pouvez changer le groupe de Xorgpartir rootpour input, définir le bit setgit et ajoutez votre utilisateur au groupe video:

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

(Au lieu de cela, vous pouvez ajouter votre utilisateur aux deux videoet input, mais cela est déconseillé. Un utilisateur du groupe inputpeut espionner les entrées d'autres utilisateurs. Par exemple, une interface graphique dans X pourrait probablement espionner le mot de passe root tapé dans console / tty.)

mviereck
la source