Der Befehl arbeitet mit dem Benutzer "heo". Aber ich bekomme die Fehlermeldung von "$ su another_user; cat file | xclip":
No protocol specified Error: Can't open display: :0.0
Ein Superuser hat eine schwarze CLI ohne Fehlermeldung oder Text mit dem Befehl xauth.
Wie kann ich das gleiche Display bei vielen Benutzern beibehalten?
Wie kann ich die Anzeige für alle Benutzer auf: 0 oder: 1 ändern?
Warum ist der xauth-Befehl bei einem Superuser schwarz?
Antworten:
xclip kann nicht mit Ihrem X-Server kommunizieren. Überprüfen Sie, ob $ DISPLAY richtig eingestellt ist. Arbeiten andere X-Clients mit der gleichen Einstellung für $ DISPLAY?
Diese:
funktioniert gut für mich.
bearbeiten
Sie erhalten die Fehlermeldung, nachdem
su
Sie an einen anderen Benutzer weitergeleitet wurden, da dieser Benutzer nicht über die erforderlichen Berechtigungen verfügt, um eine Verbindung zu Ihrem X-Server herzustellen. X verwendet ein Berechtigungsprüfungsprotokoll, das als MIT Magic Cookie bezeichnet wird. Dabei wird eine zufällige Zeichenfolge erstellt, die als Kennwort verwendet wird. Dieses Kennwort wird in der Datei gespeichert$XAUTHORITY
oder~/.Xauthority
wenn die Umgebungsvariable nicht festgelegt ist. Es wird vomxauth
Werkzeug manipuliert . Zum Beispiel,Ich bin mir nicht sicher, wofür du das Su tust, aber:
$DISPLAY
die Anzeige$XAUTHORITY
dieses Benutzers und die X-Berechtigungsdatei dieses Benutzers festlegen . Schauen Sie in ConsoleKit (falls Sie es verwenden) und/var/lib/gdm
(falls Sie GDM verwenden) nach, um die besagten Dinge zu finden.Wenn keine der oben genannten Bedingungen zutrifft, müssen Sie xauth verwenden, um die Autorisierung einzurichten, und Sie müssen berücksichtigen, dass alles, was eine Verbindung zu Ihrem X-Server herstellt, böse Folgen haben kann, z. B. alle Tastatureingaben beobachten.
PS: Der
$DISPLAY
bezieht sich auf den X-Server, an dem sie angemeldet sind. Sofern Sie nicht mehrere Server eingerichtet haben, auf denen mehrere Benutzer gleichzeitig angemeldet sind, ist dies für alle Benutzer gleich.quelle
xauth list
Welche Fehlermeldungen erhalten Sie, wenn Sie ein Terminal aufrufen und ausführen ?Wenn Sie die andere Antwort erweitern, kann der Benutzer "sudo" die X-Sitzung oder -Anzeige des nicht privilegierten Benutzers nicht verwenden. Eine Problemumgehung könnte sein, zu verwenden
su -c
.$ sudo su # echo 'hello' | su -c 'xclip -selection clipboard' nonprivusername
quelle