Linux에는 두 명의 다른 사용자가 동일한 그래픽 세션에 로그인하도록 하는 방법이 있습니까?

Linux에는 두 명의 다른 사용자가 동일한 그래픽 세션에 로그인하도록 하는 방법이 있습니까?

내가 하려는 일:

어플라이언스로 취급되는 시스템이 있고 여러 그래픽 애플리케이션이 열려 있으며 언제든지 닫아서는 안 됩니다.

HumanA는 시스템을 켜고 애플리케이션을 시작한 다음 화면을 잠글 수 있습니다.

교대근무가 이루어지고 이제 휴먼비가 기계의 책임을 지게 됩니다.

이제 HumanB는 시스템에 로그인하여 HumanA가 시작한 것과 동일한 그래픽 응용 프로그램을 확인해야 합니다.

오늘 내가 하는 방법

오늘날 우리는 하나의 사용자 계정(UserX)을 보유하고 HumanA와 HumanB가 모두 UserX의 비밀번호를 알도록 하여 이를 달성합니다.

문제는 이 시스템의 감사에 있습니다. 주말에 매우 나쁜 일이 발생했다고 판단하면 로그 파일에는 UserX가 로그인했다는 내용만 표시됩니다. 이는 규정을 충족하지 못하는 것입니다.

나에게 필요한 것

HumanA와 HumanB가 서로의 비밀번호나 공유 비밀번호를 모르도록 해야 합니다.

로그인하여 동일한 그래픽 사용자 환경을 보려면 HumanA와 HumanB가 필요합니다.

감사 관점에서 어떤 사람이 언제 로그인했는지 확인할 수 있어야 합니다.

** 설명 **

이것은 컴퓨터/모니터/키보드 설정이므로 걱정할 원격 또는 SSH 세션이 없습니다.

인간은 시스템을 동시에 사용하지 않습니다.

응용 프로그램을 "이동"하는 것과 관련된 모든 트릭은 고성능 컴퓨팅 작업을 중단시킬 수 없으며 1밀리초의 중단도 허용되지 않습니다.

우리는 현재 yocto와 XFCE를 사용하고 있습니다.

응용 프로그램은 다시 작성하거나 다시 디자인할 수 없으며 그래픽으로 유지되어야 합니다.

답변1

계속해서 UserX가 그래픽 세션을 열도록 할 수 있지만 그래픽 응용 프로그램에 대해 화면 캡처를 수행하는 다른 응용 프로그램을 추가할 수 있습니다. HumanA는 해당 화면 캡처 애플리케이션을 통해 "로그인"할 수 있습니다. 애플리케이션은 HumanA가 현재 시스템을 운영하고 있다고 기록합니다.

교대근무가 끝나면 HumanA는 (장기 실행 그래픽 애플리케이션을 통해) screengrab 애플리케이션을 다시 시작하여 "로그아웃"하므로 HumanB가 도착하면 screengrab을 통해 "로그인"해야 하며 사용자 변경 사항이 기록될 수 있습니다.

답변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 제공업체에서도 동일한 트릭을 수행할 수 있습니다.

관련 정보