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 su
an 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 $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 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
$DISPLAY
die Anzeige$XAUTHORITY
dieses 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 $DISPLAY
bezieht 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.