この質問を読んだ後Vimが終了すると、Xクリップボードは消去されます。私はXウィンドウのクリップボードがプログラム(選択項目を含む)が開いている間にのみ存在することを学びました。
「glipper」や「parcellite」などのプログラムが存在するのは、この動作によるものです。
プログラムが終了するたびにXクリップボードをクリアするとどうxclip
なりますかxsel
?
そのようなプログラムを使用すると、セキュリティにどのような影響がありますか?たとえば、パスワードをクリップボードにコピーした場合、そのパスワードをプログラムまたはユーザーがアクセスできる一時ファイルに保存できますか?
答え1
...などの選択を盗むクリップボードアプリケーションがない限りxclipboard
、/は選択を所有している限り、将来の選択要求を処理するためにバックグラウンドプロセスを分岐します。clipit
xsel
xclip
$ printf test | xclip
$ ps -C xclip
PID TTY TIME CMD
14115 pts/10 00:00:00 xclip
プロセスxclip
は選択要求(ここではデフォルトの選択)を処理しています。ただし、他のアプリケーションがアイテムを選択した場合(または他のアイテムを保存するためにまたはを再使用するxsel
場合)、プロセスは他のアプリケーションの選択を放棄して終了します。xclip
xclip
$ printf test | xsel
$ ps -C xclip
PID TTY TIME CMD
$ ps -C xsel
PID TTY TIME CMD
14212 ? 00:00:00 xsel
上記ではxsel
選択項目が引き継がれますxclip
。
以下により、特定の選択項目の所有者を確認できます。
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
int main(int argc, char* argv[])
{
Display *d = XOpenDisplay(NULL);
Window w = XGetSelectionOwner(d, XInternAtom (d, argv[1], False));
printf("0x%08x\n", w);
return 0;
}
それから:
$ make xgo LDFLAGS=-lX11
$ ./xgo PRIMARY
0x07000001
これにより、ウィンドウIDが提供されます。 idでまたはを使用できますが、/の場合xprop -id
はxwininfo -id
多くの情報を取得できません。xclip
xsel
GNU / Linuxベースのシステムでは、ltrace
XライブラリAPIレベルで何が起こっているのかを知るのが便利です。
また、見ることができますX11プロトコルトラフィックキャプチャX11プロトコルレベルで何が起こっているかを確認してください。