グラフィカルセッション中にユーザーのHOMEを変更する

グラフィカルセッション中にユーザーのHOMEを変更する

先日、ディスプレイ マネージャーに依存しないゲスト セッションを作成するというアイデアが浮かびました。

私の基本的なアイデアは、ログイン シェルを、オンザフライで一時的なホームを作成するカスタム プログラム (fe /tmp/guest-XXXXXX) に変更し、このセッションにそのホームを割り当てるというものでした。ユーザーがログアウトすると、そのディレクトリが再び削除されます。私が遭遇した問題は次のとおりです。ホームを設定する必要があり/etc/passwd、HOME 環境変数を問題なく上書きできますが、少なくともグラフィカル環境では、アプリケーションは環境変数ではなく、に設定されたホームを使用しているようです。セッションが開始されるまでホームについてわからないため、passwdにホームを設定できません。passwd

私が考え出した基本的なロジックは次のようになります。

  • ログインシェルが開始されました
  • 仮設住宅を建設
  • HOMEはこの一時的なホームに設定されています
  • 本物の貝殻は二股になっている
  • 実際のシェルが終了した後、一時的なホームは削除されます

これは、suユーザーにログインしたときには機能しているように見えますが、グラフィカル セッションを実行すると、mot/すべてのプログラムがホーム セットを使用して開始されますpasswd

グラフィカル セッションがアクティブなときに、ユーザー ホームをオンザフライで変更することは可能ですか? グラフィカル セッションの動作のアーキテクチャで何かを見落としているのでしょうか?

関連情報