이 질문을 읽은 후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 프로토콜 수준에서 무슨 일이 일어나고 있는지 확인하세요.