Fehler im Befehl „cat file | xclip ”

0

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.

  1. Wie kann ich das gleiche Display bei vielen Benutzern beibehalten?

  2. Wie kann ich die Anzeige für alle Benutzer auf: 0 oder: 1 ändern?

  3. Warum ist der xauth-Befehl bei einem Superuser schwarz?


quelle
Und jetzt habe ich die Antwort aktualisiert.
Derobert

Antworten:

5

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:

$ echo 'hello' | xclip

funktioniert gut für mich.

bearbeiten

Sie erhalten die Fehlermeldung, nachdem suSie 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 $XAUTHORITYoder ~/.Xauthoritywenn die Umgebungsvariable nicht festgelegt ist. Es wird vom xauthWerkzeug manipuliert . Zum Beispiel,

$ xauth list
…
Feynman/unix:0  MIT-MAGIC-COOKIE-1  <<redacted>>
…

Ich bin mir nicht sicher, wofür du das Su tust, aber:

  • Wenn dies der Fall ist, können Sie die Datei lesen, indem Sie die cat als anderen Benutzer ausführen und die Ausgabe von su an xclip leiten. Auf diese Weise wird xclip als Benutzer ausgeführt und funktioniert.
  • Wenn Sie versuchen, die Zwischenablage für die X-Sitzung eines anderen Benutzers festzulegen, müssen Sie $DISPLAYdie Anzeige $XAUTHORITYdieses 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 $DISPLAYbezieht 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.

derobert
quelle
xauth listWelche Fehlermeldungen erhalten Sie, wenn Sie ein Terminal aufrufen und ausführen ?
Derobert
0

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

ILMostro_7
quelle