
我正在嘗試做的事情:
我有一台被視為設備的機器,它打開了多個圖形應用程序,並且這些應用程式不得隨時關閉。
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 提供者也可以執行相同的技巧。