Fehler im Befehl "cat file | xclip"

5192

Der Befehl arbeitet mit dem Benutzer "heo". Ich erhalte aber die Fehlermeldung "$ su another_user; cat file | xclip":

No protocol specified Error: Can't open display: :0.0 

Ein Superuser hat eine schwarze CLI, keine Fehlermeldung oder Text mit dem Befehl xauth.

  1. Wie kann ich bei vielen Benutzern dieselbe Anzeige beibehalten?

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

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

0
Und jetzt habe ich die Antwort aktualisiert. derobert vor 14 Jahren 0

2 Antworten auf die Frage

5
derobert

xclip kann nicht mit Ihrem X-Server kommunizieren. Stellen Sie sicher, dass $ DISPLAY richtig eingestellt ist. Arbeiten andere X-Clients mit der gleichen $ DISPLAY-Einstellung?

Diese:

$ echo 'hello' | xclip 

funktioniert gut für mich.

bearbeiten

Sie erhalten den Fehler, nachdem Sie sich suan einen anderen Benutzer gewendet haben, da dieser Benutzer nicht über die erforderlichen Berechtigungen zum Herstellen einer Verbindung zu Ihrem X-Server verfügt. X verwendet ein Berechtigungsprüfungsprotokoll, das als MIT-Magic-Cookie bezeichnet wird. Dabei wird eine zufällige Zeichenfolge als Kennwort erstellt. 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 nicht sicher, wofür Sie das tun, aber:

  • Wenn dies der Fall ist, können Sie die Datei lesen. Führen Sie einfach die Katze als anderen Benutzer aus und leiten Sie die Ausgabe von su an xclip weiter. 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 einstellen . Schauen Sie in ConsoleKit (wenn Sie es verwenden) und /var/lib/gdm(wenn Sie gdm verwenden), um die besagten Dinge zu finden.

Wenn keine der oben genannten Voraussetzungen erfüllt ist, müssen Sie xauth verwenden, um die Autorisierung einzurichten, und bedenken Sie, dass alle Verbindungen zu Ihrem X-Server alle möglichen Arten von Übel bewirken können, z. B. alle Ihre Tastatureingaben.

PS: Dies $DISPLAYbezieht sich auf den X-Server, bei dem sie angemeldet sind. Wenn Sie nicht mehrere Server ausgeführt haben (dh sich mehrere Benutzer gleichzeitig anmelden können), ist dies für alle Benutzer gleich.

Welche Fehlermeldungen erhalten Sie, wenn Sie ein Terminal hochfahren und `xauth list` ausführen? derobert vor 14 Jahren 0
0
ILMostro_7

Der "sudo" -Benutzer kann nicht die X-Sitzung oder Anzeige eines nicht privilegierten Benutzers verwenden. Eine Problemumgehung könnte zu verwenden sein su -c.

$ sudo su # echo 'hello' | su -c 'xclip -selection clipboard' nonprivusername