¿Existe alguna forma en Linux de que dos usuarios diferentes inicien sesión en la misma sesión gráfica?

¿Existe alguna forma en Linux de que dos usuarios diferentes inicien sesión en la misma sesión gráfica?

Lo que estoy tratando de hacer:

Tengo una máquina que se trata como un electrodoméstico, tiene múltiples aplicaciones gráficas abiertas, y estas no se deben cerrar en ningún momento.

HumanA podría encender el sistema, iniciar las aplicaciones y luego bloquear la pantalla.

Hay un cambio de turno y HumanB ahora asume la responsabilidad de la máquina.

HumanB ahora necesita iniciar sesión en el sistema y ver las mismas aplicaciones gráficas que lanzó HumanA.

como lo hago hoy

Hoy logramos esto al tener una cuenta de usuario (UsuarioX) y tanto HumanA como HumanB conocen la contraseña de UserX.

El problema está en la auditoría de este sistema. Si determinamos que sucedió algo muy malo durante el fin de semana, el archivo de registro solo nos dirá que UserX inició sesión. Esto no cumple con nuestras regulaciones.

Lo que necesito que haga

Necesito que HumanA y HumanB no sepan la contraseña de los demás ni una contraseña compartida.

Necesito HumanA y HumanB para poder iniciar sesión y ver el mismo entorno gráfico de usuario.

Necesito poder determinar qué humano inició sesión y en qué momento, desde el punto de vista de la auditoría.

**Aclaraciones**

Esta es una configuración de computadora/monitor/teclado, no hay sesiones remotas o ssh de las que preocuparse.

Los humanos no utilizan el sistema al mismo tiempo.

Cualquier truco que implique "mover" la aplicación no puede provocar ninguna interrupción en las tareas informáticas de alto rendimiento, ni siquiera una interrupción de 1 milisegundo es aceptable.

Actualmente utilizamos yocto y XFCE.

La aplicación no se puede reescribir ni rediseñar, debe seguir siendo gráfica.

Respuesta1

Puede continuar haciendo que UserX abra la sesión gráfica, pero agregue otra aplicación que haga una captura de pantalla sobre las aplicaciones gráficas. HumanA puede "iniciar sesión" a través de esa aplicación de captura de pantalla. La aplicación registraría que HumanA ahora está operando el sistema.

Al final de un turno, HumanA "cierra sesión" reiniciando la aplicación de captura de pantalla (sobre las aplicaciones gráficas de ejecución prolongada), de modo que cuando llega HumanB, debe "iniciar sesión" a través de la captura de pantalla y se puede registrar el cambio de usuario.

Respuesta2

Es un poco complicado, pero creo que puedes gestionarlo utilizando varios usuarios con el mismo uid. Podrías tener en /etc/passwd:

Appliance:x:1000:1000::/home/machine:/bin/bash
HumanA:x:1000:1000::/home/machine:/bin/bash
HumanB:x:1000:1000::/home/machine:/bin/bash

(más las entradas correspondientes en /etc/shadow, puede passwd HumanA)

En realidad, el sistema identifica a los usuarios por su uid. Entonces, con una configuración como esta, puedes ingresar tanto HumanA (con la contraseña de HumanA) como HumanN (con la contraseña de HumanB), y terminarás en la misma sesión. Sin embargo, registrará al usuario proporcionado para iniciar sesión.

Cuando el sistema quiera resolver uid 1000 en un nombre, encontrará el primer resultado y simplemente devolverá "Dispositivo".

Por supuesto, se podría realizar el mismo truco con otros proveedores de nss.

información relacionada