Sie können keinen neuen Cookie generieren: Der Cookie ist das "geheime Passwort", das dem Server beim Start mitgeteilt wurde und das alle Clients wissen müssen, um eine Verbindung herzustellen.
Ich denke, man kann mit so was bekommen
DISPLAY=:0 XAUTHORITY=$(ps auxw | sed -ne "s|.*/[X].* $DISPLAY.*-auth \\([^ ]*\\).*|\\1|p") export DISPLAY XAUTHORITY ...
Dies funktioniert, indem nach dem X-Server-Prozess gesucht wird, der versucht, das an ihn übergebene -auth
Argument zu finden, da dies eine Datei sein sollte, die die XAUTH-Einstellungen enthält. Beachten Sie, dass diese Datei (meiner Erfahrung nach) normalerweise root gehört und andere Benutzer sie nicht lesen können. Wenn Sie dann eine X-Anwendung ausführen möchten, die nicht als root ausgeführt wird, müssen Sie diese zuerst kopieren Datei (als root) an anderer Stelle und ändern Sie den Eigentümer dieser Kopie (oder Sie möchten den Inhalt dieser Datei ~/.Xauthority
mit xauth add
oder in die Datei des Benutzers übertragen xauth merge
).
Eine andere Methode zum Auffinden der Datei, in der der Magic Cookie gespeichert ist, besteht darin, sich die Umgebung einiger Prozesse des angemeldeten Benutzers anzusehen (z gnome-shell
. B. des Prozesses). ZB mit ps
Sie sollten den Prozess-ID der Lage zu finden, gnome-shell
Prozess (oder einen anderen Benutzer - Prozess, den wir als X - Client erwarten zu laufen), und suchen Sie in dann /proc/<process-id>/environment
auf den Wert seiner XAUTHORITY envvar zu finden.