vimが終了したときにXクリップボードがクリアされるというこの質問を読んだ後、Xウィンドウクリップボードは、選択が取得されたプログラムが開いたままのときにのみ存在することを知りました。
「グリッパー」や「パーセライト」のようなプログラムが存在するのは、この動作のためです。
プログラムが終了するたびにXクリップボードがクリアされる場合、プログラムはどのようxclip
にxsel
動作しますか?
そして、このようなプログラムを使用することのセキュリティへの影響は何ですか?たとえば、パスワードがクリップボードにコピーされた場合、このパスワードをプログラムやユーザーがアクセスできる一時ファイルに保存できますか?
以下のようなクリップボードのアプリケーションがありますない限りxclipboard
、clipit
彼らから選択を盗む...、xsel
/xclip
長い彼らは選択を所有しているとして、将来の選択要求を処理するために、バックグラウンド・プロセスをフォークします。
$ printf test | xclip
$ ps -C xclip
PID TTY TIME CMD
14115 pts/10 00:00:00 xclip
そのxclip
プロセスは、選択(ここではPRIMARY選択)の要求を処理しています。ただし、別のアプリケーションで何かを選択した場合(または、何かを保存するために使用し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プロトコルのトラフィックをキャプチャするも参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加