¿Cómo puedo ejecutar / usr / bin / Xorg sin sudo?

8

Esta pregunta se trata de ejecutar /usr/bin/Xorgdirectamente en Ubuntu 14.04.

Y sé que existe Xdummy, pero no pude hacer que el controlador ficticio funcione correctamente con la GPU nvidia, por lo que no es una opción.

He copiado el sistema de toda la xorg.confy /usr/lib/xorg/modules, y los modificó un poco. (Especificado ModulePathen mi xorg.conftambién)

Ejecutar el siguiente comando como root funciona bien:

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

Pero si lo hago como usuario no root (el permiso del archivo de registro está bien), se produce este error:

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

¿Podrías ayudarme a ejecutar Xorg sin sudo?

sin nombre
fuente
No creo que sea posible ejecutar X como no root; necesita acceder directamente a un montón de hardware y material del sistema.
Dirkt
3
establecer setuidbit en Xorg:chmod +s $(which Xorg)
Serge
@dirkt Es posible en sistemas recientes pero no con todos los controladores. Ver, por ejemplo , Ubuntu , Debian , Fedora , Gentoo , Arch , ...
Gilles 'SO- deja de ser malvado'
¡Gracias chicos! ¡Parece que tu consejo funcionó para mí!
noname

Respuestas:

5

Para determinar quién puede ejecutar X, configúrelo con

dpkg-reconfigure x11-common

Hay tres opciones: solo root, solo usuarios de consola o cualquiera. La entrada se encuentra en /etc/X11/Xwrapper.config.


Desde Debian 9 y Ubuntu 16.04 este archivo no existe. Después de la instalación xserver-xorg-legacy, el archivo vuelve a aparecer y su contenido debe cambiarse de:

allowed_users=console

a:

allowed_users=anybody
needs_root_rights=yes

También debe especificar el terminal virtual que se utilizará al iniciar X; de lo contrario, pueden producirse errores. Por ejemplo:

Xorg :8 vt8
mviereck
fuente
3

X necesita acceso a dispositivos de entrada (mouse y teclado) y al monitor y la tarjeta gráfica para la salida.

Para lograr esto para no root X, puede cambiar el grupo de Xorgpartir roota input, establecer el bit setgit, y añadir su usuario al grupo video:

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

(En cambio, podría agregar su usuario a ambos videoy input, pero eso se desaconseja. Un usuario en grupo inputpuede espiar las entradas de otros usuarios. Por ejemplo, una GUI en X probablemente podría espiar la contraseña de root ingresada en la consola / tty).

mviereck
fuente