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.