Linux 中有没有办法让两个不同的用户登录同一个图形会话?

Linux 中有没有办法让两个不同的用户登录同一个图形会话?

我正在尝试做的事情:

我有一台被视为设备的机器,它打开了多个图形应用程序,并且这些应用程序在任何时候都不能关闭。

HumanA 可能会打开系统、启动应用程序,然后锁定屏幕。

轮班发生了变化,HumanB 现在承担起机器的责任。

HumanB 现在需要登录系统,并查看 HumanA 启动的相同图形应用程序。

我今天是如何做的

今天我们通过一个用户帐户(UserX)实现了这一点,并且 HumanA 和 HumanB 都知道 UserX 的密码。

问题在于该系统的审计。如果我们确定周末发生了一些非常糟糕的事情,日志文件只会告诉我们 UserX 登录了。这不符合我们的规定。

我需要它做什么

我需要 HumanA 和 HumanB 不知道彼此的密码或共享密码。

我需要 HumanA 和 HumanB 能够登录并看到相同的图形用户环境。

从审计的角度来说,我需要能够确定哪个人在什么时候登录。

** 澄清 **

这是计算机/显示器/键盘设置,无需担心远程或 ssh 会话。

人类不会同时使用该系统。

任何涉及“移动”应用程序的技巧都不能导致高性能计算任务的任何中断,即使是1毫秒的中断也是不可接受的。

我们目前使用 yocto 和 XFCE。

该应用程序不能被重写或重新设计,它必须保持图形化。

答案1

您可以继续让 UserX 打开图形会话,但添加另一个在图形应用程序上执行截屏的应用程序。HumanA 可以通过该截屏应用程序“登录”。该应用程序将记录 HumanA 现在正在操作系统。

在轮班结束时,HumanA 通过重新启动截屏应用程序(通过长期运行的图形应用程序)来“注销”,因此当 HumanB 到达时,她必须通过截屏“登录”,并且可以记录用户的变化。

答案2

这有点黑客行为,但我认为你可以通过使用具有相同 uid 的多个用户来管理它。你可以这样做/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

(加上 上的相应条目/etc/shadow,您可以passwd HumanA

系统实际上是通过用户的 uid 来识别用户的。因此,通过这样的设置,您可以同时输入 HumanA(使用 HumanA 的密码)或 HumanN(使用 HumanB 的密码),最终会进入同一个会话。但是,系统会记录提供的用户登录信息。

当系统想要将 uid 1000 解析为一个名称时,它会找到第一个结果并返回“Appliance”。

当然,其他 nss 提供商也可以使用同样的技巧。

相关内容