Ändern des HOME eines Benutzers während einer grafischen Sitzung

Ändern des HOME eines Benutzers während einer grafischen Sitzung

Neulich hatte ich die Idee, eine vom Display-Manager unabhängige Gastsitzung zu erstellen.

Meine Grundidee war, die Login-Shell in ein benutzerdefiniertes Programm zu ändern, das im laufenden Betrieb ein temporäres Home erstellt (z. B. /tmp/guest-XXXXXX), und dieser Sitzung dieses Home zuzuweisen. Nachdem sich der Benutzer abgemeldet hat, wird dieses Verzeichnis wieder entfernt. Das Problem, auf das ich gestoßen bin, ist das folgende: Ich muss ein Home festlegen /etc/passwdund kann die HOME-Umgebungsvariable problemlos überschreiben, aber Anwendungen scheinen immer noch das festgelegte Home passwdanstelle der Umgebungsvariable zu verwenden, zumindest in einer grafischen Umgebung. Ich kann das Home nicht festlegen, passwdda ich davon erst erfahre, wenn die Sitzung begonnen hat.

Die grundlegende Logik, die mir dabei herausgekommen ist, sieht folgendermaßen aus:

  • Login-Shell gestartet
  • temporäres Zuhause geschaffen
  • HOME ist auf dieses temporäre Home eingestellt
  • eine echte Shell wird gegabelt
  • Nachdem die eigentliche Shell beendet wurde, wird das temporäre Home entfernt

Dies scheint zu funktionieren, wenn ich mich suim Benutzermodus befinde, aber das Ausführen einer grafischen Sitzung bedeutet, dass die meisten/alle gestarteten Programme das in festgelegte Home-Menü verwenden passwd.

Ist es möglich, ein Benutzer-Home im laufenden Betrieb bzw. während einer aktiven Grafiksitzung zu ändern? Habe ich in der Architektur der Funktionsweise der Grafiksitzungen etwas übersehen?

verwandte Informationen