Wenn ich online bin, wird folgende Fehlermeldung angezeigt und das Tool startet nicht:
[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0
Aber alles ist in Ordnung, wenn ich kein Superuser bin. Warum das?
Bearbeiten
[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified
irgendein Vorschlag?
Ebenfalls
[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost: unable to open display ":0.0"
export $(dbus-launch)
oder verwendenxhost [+]
, um sie mit X und Ihrem Superuser-Konto zu starten.$ xhost
Sie den aktuellen Zugriff anzeigen und$ xhost +
den Zugriff von einem beliebigen Host aus aktivieren. Sie tun dies oft von einem virtuellen Terminal aus, von dem Sie sicher sind, dass es Programme mit Xecho $DISPLAY
, wenn Sie kein Superuser sind ? Zu welchem Benutzer gehört der xserver-Prozess, den Sie verwenden möchten? (Sie können letzteres herausfinden, indem Sie zum Beispiel verwendenps faux
)Antworten:
Ein X-Programm benötigt zwei Informationen, um eine Verbindung zu einem X-Display herzustellen.
Es braucht die Adresse des Displays, die in der Regel ist ,
:0
wenn Sie in lokal oder angemeldet sind:10
,:11
usw. , wenn ich ist in der Ferne angemeldet (aber die Zahl kann je nach ändern , wie viele X - Verbindungen sind aktiv). Die Adresse der Anzeige wird normalerweise in derDISPLAY
Umgebungsvariablen angezeigt .Es benötigt das Passwort für die Anzeige. X-Display-Passwörter werden als magische Cookies bezeichnet . Magische Cookies werden nicht direkt angegeben: Sie werden immer in X-Berechtigungsdateien gespeichert, bei denen es sich um eine Sammlung von Datensätzen der Form „Anzeige
:42
hat Cookie123456
“ handelt. Die X-Berechtigungsdatei wird normalerweise in derXAUTHORITY
Umgebungsvariablen angegeben. Wenn$XAUTHORITY
nicht festgelegt, verwenden Programme~/.Xauthority
.Siehe Öffnen eines Fensters auf einer Remote-X-Anzeige (warum "Anzeige kann nicht geöffnet werden")? für mehr Details.
In Ihrem Fall
DISPLAY
ist festgelegt, aber Programme können die Cookie-Datei offensichtlich nicht finden. Überprüfen Sie den Wert vonXAUTHORITY
in Ihrer Sitzung und daruntersu
.Wenn
XAUTHORITY
dies in Ihrer Sitzung nicht festgelegt ist undsu
dieHOME
Umgebungsvariable auf das Basisverzeichnis von root festgelegt wird, müssen Sie festlegenXAUTHORITY
,/home/msz/.Xauthority
wo/home/msz
sich Ihr Basisverzeichnis befindet.Wenn
su
entferntXAUTHORITY
von der Umgebung, es entweder zurückgestellt oder configuresu
nicht , dies zu tun.Wenn sich Ihr Home-Verzeichnis auf einigen Dateisystemen wie NFS befindet, kann root es möglicherweise nicht direkt lesen. In diesem Fall können Sie die
.Xauthority
Datei an einen anderen Speicherort in einem Nicht-NFS-Dateisystem kopieren :quelle
ln -s /home/otheruser/.Xauthority ~
Sie führen xhost als root aus!
Führen Sie xhost als normalen Benutzer aus
xhost +
, werden Sie root und versuchen Sie es erneut.Übrigens, wie andere darauf hingewiesen haben,
xhost +
erlaubt es jedem Benutzer von jedem Hostquelle
xhost
sie nicht funktionieren. Wenn ja, dann zumindest laufenxhost +localhost
, nichtxhost +
!XAUTHORITY wurde für mich als eine Datei festgelegt, die nicht mehr existiert:
$ echo $XAUTHORITY
/tmp/xauth-1000-_0
So tat ich
unset XAUTHORITY
und konnte dann mit kdesudo (in diesem Fall
kdesudo bleachbit
) eine Verbindung zu meiner App als root herstellen.quelle
Als normaler Benutzer ausführen
dann aktivieren Sie Super User durch
Zum Schluss gehen Sie zum Serverbeispiel
endlich laufen ./Ampps
Danke mir im Jahr 2020
quelle
Das hat bei mir in Fedora 30 funktioniert
quelle