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 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 vom xauth
Werkzeug 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
$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.