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

這有點 hackish,但我認為您可以透過使用具有相同 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 提供者也可以執行相同的技巧。

相關內容