有一天,我想到創建顯示管理器獨立的訪客會話。
我的基本想法是將登入 shell 變更為自訂程序,該程序會動態建立臨時主目錄 (fe /tmp/guest-XXXXXX
) 並將此會話指派給該主目錄。用戶登出後,它將再次刪除該目錄。我遇到的問題如下,我需要設定一個 home/etc/passwd
並且我可以毫無問題地覆蓋 HOME 環境變量,但應用程式似乎仍然使用 home 設定passwd
而不是環境變量,至少在圖形環境中。我無法設置房屋,passwd
因為直到會議開始我才知道。
我想出的基本邏輯如下:
- 登入 shell 已啟動
- 創造臨時家園
- HOME 設定為這個臨時家
- 真正的 shell 是分叉的
- 真正的 shell 終止後,臨時家將被刪除
su
當我進入用戶時,這似乎有效,但是運行圖形會話意味著大多數/所有程式都開始使用passwd
.
是否可以在圖形會話處於活動狀態時動態變更使用者主頁?我是否忽略了圖形會話如何運作的架構中的某些內容?