Dos aplicaciones GUI como usuarios diferentes en la misma pantalla

Dos aplicaciones GUI como usuarios diferentes en la misma pantalla

He iniciado sesión como usuario A. Quiero ejecutar una aplicación GUI como usuario B. Usuario, no root. El usuario B también es local, no remoto, solo necesito diferentes variables de entorno. No quiero ejecutar la segunda X, las quiero en la misma pantalla. No tengo ningún problema con los programas que se ejecutan en la terminal, su - ...funciona. Para gráficos hay un mensaje de error:

Application initialization failed: couldn't connect to display ":0.0"

o

Gtk-WARNING **: cannot open display: :0.0

¿Existe una buena manera de solucionarlo? ¿El artículo sobre el uso correcto de xhosto algo así?

Respuesta1

Ejecute el siguiente comando para dar userBnameacceso a la pantalla: xhost +SI:localuser:userBnamePuede utilizar xhost +para dar acceso a todos; sin embargo, esto es inseguro. Es mejor dar acceso por usuario. La sintaxis correcta para las entradas de xhosts para usuarios locales es SI:localuser:username.

Luego su userBname, export DISPLAY=:0.0y finalmente ejecute su programa GUI. Aunque anteriormente concedió acceso a la pantalla con xhost, también debe configurar la variable ambiental DISPLAYpara que los programas sepan dónde colocar su salida gráfica. Permitir diferentes DISPLAYvariables para diferentes usuarios permite que varios usuarios conectados a una sola máquina utilicen diferentes terminales físicos.

Respuesta2

Simplemente use gksu -u el nombre de usuario deseado, ingrese la contraseña y estará listo para comenzar.

DISPLAY=:1.0 gksu [-u <user>] [options] <command>

Alternativamente, puede usar su y luego configurar XDISPLAY en la pantalla derecha y finalmente iniciar la aplicación deseada.

Respuesta3

Así es como logro esto: -

  1. Abra una terminal x como usuario con la sesión X existente.
  2. Emita el comando xauth list. Debería ver los valores de las cookies X Magic que autentican las solicitudes al servidor X, para varios descriptores. Copie el que tiene la referencia "unix". p.ej myhost/unix: MIT-MAGIC_COOKIE-1 df8923ae98098fb890c63454c7c
  3. Abra una segunda terminal como usuario inicial pero cambie de usuario (su) a la identificación que desee, por ejemplosu - user2
  4. Ahora que ha cambiado de usuario, emita el comando xauth addy pegue la línea que copió previamente en la etapa 2, luego presione regresar, por ejemplo. xauth add myhost/unix: MIT-MAGIC_COOKIE-1 df8923ae98098fb890c63454c7c
  5. Inicie un programa X en la segunda terminal desde la línea de comando, por ejemplo:firefox

¡Eso es todo!

Respuesta4

Primero agregue su segundo usuario a localuser:

$ xhost SI:localuser:user2

usuario local: jugador que se agrega a la lista de control de acceso

Luego ejecute sus aplicaciones:

$ sudo -u user2 -H firefox

información relacionada