先日、ディスプレイ マネージャーに依存しないゲスト セッションを作成するというアイデアが浮かびました。
私の基本的なアイデアは、ログイン シェルを、オンザフライで一時的なホームを作成するカスタム プログラム (fe /tmp/guest-XXXXXX
) に変更し、このセッションにそのホームを割り当てるというものでした。ユーザーがログアウトすると、そのディレクトリが再び削除されます。私が遭遇した問題は次のとおりです。ホームを設定する必要があり/etc/passwd
、HOME 環境変数を問題なく上書きできますが、少なくともグラフィカル環境では、アプリケーションは環境変数ではなく、に設定されたホームを使用しているようです。セッションが開始されるまでホームについてわからないため、passwd
にホームを設定できません。passwd
私が考え出した基本的なロジックは次のようになります。
- ログインシェルが開始されました
- 仮設住宅を建設
- HOMEはこの一時的なホームに設定されています
- 本物の貝殻は二股になっている
- 実際のシェルが終了した後、一時的なホームは削除されます
これは、su
ユーザーにログインしたときには機能しているように見えますが、グラフィカル セッションを実行すると、mot/すべてのプログラムがホーム セットを使用して開始されますpasswd
。
グラフィカル セッションがアクティブなときに、ユーザー ホームをオンザフライで変更することは可能ですか? グラフィカル セッションの動作のアーキテクチャで何かを見落としているのでしょうか?