
Bearbeitet bezüglich der Antwort von @terdon.
Auf meinem Ubuntu-Computer:
Wenn ich über einen Server verbinde ssh -X my_server
, kann ich ein Programm starten.
Dann sudo -i
werde ich Root, aber ich kann das gleiche Programm nicht starten.
Fehler:
X11-Verbindung wegen falscher Authentifizierung abgelehnt. qt.qpa.xcb: Verbindung zum Display localhost:18.0 konnte nicht hergestellt werden qt.qpa.plugin: Das Qt-Plattform-Plugin „xcb“ konnte in „“ nicht geladen werden, obwohl es gefunden wurde. Diese Anwendung konnte nicht gestartet werden, da kein Qt-Plattform-Plugin initialisiert werden konnte. Eine Neuinstallation der Anwendung kann dieses Problem beheben.
Verfügbare Plattform-Plugins sind: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Abgebrochen (Core Dump)
Ich habe einWindows-VMmitMobaXterm. Es zeigt mir die Adresse, die der X-Server verwendet.
Wenn ich dasselbe wie oben mache, habe ich dasselbe Problem. Aber ich kann tippen export DISPLAY=172.30.4.66:0.0
und es funktioniert.
echo $DISPLAY
gibt mir dann die eingegebene Adresse.
Wie kann ich diese Adresse auf meinem Ubuntu-Computer erhalten?
Beim Eintippen echo $DISPLAY
erhalte ich :0
. Und export DISPLAY=<my ip>:0
es funktioniert nicht.
Die "x11-xserver-utils" sind nicht installiert (es gibtkein xhost).
Antwort1
Erstens brauchen Sie nie sudo su
. Warum also zwei Programme verwenden, wenn eines ausreicht? Führen Sie einfach aus sudo -i
. Zweitens, warum brauchen Sie das überhaupt? Wenn Sie das Programm als Root ausführen möchten, führen Sie einfach aus sudo programName
. Außerdem geht es hier nicht darum, die IP zu erhalten (und es hat übrigens keinen Sinn, Ihre IP zu verschleiern: 172.30.4.66 ist eine interne Adresse in Ihrem Heimnetzwerk, nicht Ihre öffentliche IP), sondern darum, den Zugriff zu ermöglichen.
Wenn Sie wirklich möchten, dass Root grafische Programme in Ihrer X-Sitzung starten kann, müssen Sie ausführen, xhost +
um allen Benutzern Zugriff zu gewähren. Führen Sie es also einfach aus xhost +
und versuchen Sie dann, es zu starten. Wenn das nicht funktioniert, aktualisieren Sie Ihre Frage mit der Ausgabe.