it-swarm.com.de

Verbindung mit Mir fehlgeschlagen: Verbindung mit Server-Socket fehlgeschlagen: Keine solche Datei oder kein solches Verzeichnis

Wie starte ich GUI-Programme, nachdem ich mich als ein anderer Benutzer angemeldet habe?

[email protected]:~$ 
[email protected]:~$ Sudo -u hawat -i
[email protected]:~$ 
[email protected]:~$ whoami
hawat
[email protected]:~$ 
[email protected]:~$ pwd
/home/hawat
[email protected]:~$ 
[email protected]:~$ echo $HOME
/home/hawat
[email protected]:~$ 
[email protected]:~$ firefox
No protocol specified
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
[email protected]:~$ 
17
Thufir

export DISPLAY=:0 hat für mich gearbeitet. Stellen Sie sicher, dass Sie den Befehl auf dem verbindenden System ausführen, nicht auf dem System, zu dem Sie eine Verbindung herstellen!

13
user2938093

Diese Antwort funktioniert auf meinem Ubuntu 16.04 und Mir (mit leichten Anpassungen):

Führen Sie den Befehl x mit xauth als anderer Benutzer aus

Wrapper-Bash-Skript:

Der Einfachheit halber ich habe ein Wrapper-Bash-Skript erstellt , das Sie möglicherweise in /usr/local/bin/xsudo herunterladen und als ausführbar markieren möchten (chmod +x /usr/local/bin/xsudo).

Dann einfach ausführen:

xsudo hawat firefox

Mögliche Alternativen:

  • Als viel einfachere Alternative könnten Sie pam_xauth (s. diese Antwort ) untersuchen. Dies funktioniert jedoch aus irgendeinem Grund nicht für mich. (Ich erhalte immer noch die Fehlermeldung, dass Firefox unter: 0 keine Verbindung zum Display herstellen kann.)
  • In vielen Foren wird möglicherweise der Befehl xhost +local: oder ein ähnlicher Befehl angezeigt, mit dem gksudo -u hawat firefox ohne Wrapper-Skript ausgeführt werden kann . Beachten Sie jedoch , dass dies eine Sicherheitslücke öffnet : Jeder aktive Benutzer kann Ihr lokaler Host kann auf Tastatur, Maus, Bildschirm usw. zugreifen.
  • Früher gab es sux , das aus irgendeinem Grund eingestellt wurde - möglicherweise können Sie es dennoch herunterladen und verwenden. Soweit ich das beurteilen kann, hat es nur viel mehr mit meinem Drehbuch zu tun. Leider konnte ich nicht herausfinden, warum dies nicht mehr gepflegt wird. (Vielleicht, weil wir jetzt stattdessen pam_xauth verwenden sollten - s. Erste Alternative)
6
lentschi

Nachdem ich viel zu viel Zeit damit verbracht hatte, stellte ich fest, dass bei Gnome unter Ubuntu 16.04 der korrekte Wert DISPLAY=:1 und nicht DISPLAY=:0 ist, wie es von jeher war.

3
Peter V. Mørch

export DISPLAY =: funktioniert einwandfrei, dies ist jedoch eine vorübergehende Lösung, da Sie dies jedes Mal eingeben müssen, wenn Sie das Terminal öffnen.

Permanente Lösung: Das Problem liegt möglicherweise an der Variablen env_keep in/etc/sudoers. Fügen Sie die folgende Zeile am Ende von/etc/sudoers mit gedit oder mit Sudo visudo hinzu

Defaults env_keep + = "DISPLAY"

Hinweis: Denken Sie daran, beim Hinzufügen zu env_keep immer "+ =" zu verwenden. Falls es andere env_keep mit "=" gibt, ändern Sie diese in "+ =", da die Verwendung von "=" andere Werte überschreibt.

1
Mahesh Kumar