Есть ли в 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.

Связанный контент