답변:
그것은으로 불가능 어떤 XInput에 / 임의의 프로그램에 사용할 수 있습니다, 키는 X 서버에 통과했다. (실제로 디자인의 일부입니다). Wayland 및 Mir와 같은 새로운 디스플레이 서버는 X에서 이러한 보안 문제를 해결하고 있습니다. 유일한 해결책은 X 대신 Wayland 또는 Mir를 사용하는 것입니다. 이 블로그 게시물에서는이 문제에 대해 자세히 설명합니다.
다른 사람들이 말했듯이 표준 사용자가 키 로거를 실행하도록 제한하거나 키 로거 프로세스를 중지 / 일시 중지 한 경우에만 gnome-terminal 또는 기타 터미널과 같은 프로그램 만 키 로깅에서 보호 할 수 없습니다.
다음은 xinput
명령의 경우 이러한 작업을 수행하는 방법을 보여 주지만 다른 키 로거에 동일한 방법을 사용할 수 있습니다. 키 로거가 xinput
명령을 사용하는 경우에 적용하는 한 메소드를 적용 할 필요는 없습니다 xinput
.
xinput
명령 을 사용하도록 제한다음 명령 을 사용xinput
하여 표준 사용자가 명령 을 사용하도록 제한 할 수 있습니다 .
sudo chmod go-x /usr/bin/xinput
xinput
가 test-xi2
인수 와 함께 명령 을 사용하도록 제한이 명령에 대한 랩퍼를 작성하여 표준 사용자 xinput
가 test-xi2
인수 와 함께 명령 을 사용하도록 제한 할 수 있습니다 . 이렇게하려면 터미널로 이동하여 아래 지침을 따르십시오.
루트 권한을 얻으십시오.
sudo -i
xinput
사용자의 PATH에없는 다른 디렉토리로 파일을 이동 하십시오 (예 :) /opt
:
mv /usr/bin/xinput /new/path/to/xinput
다음에 xinput
명령을 위한 랩퍼를 작성하십시오 /usr/bin
.
gedit /usr/bin/xinput
내부에 다음 스크립트를 추가하십시오.
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
파일을 저장하고 닫습니다.
새 랩퍼를 실행 가능하게 만드십시오.
chmod +x /usr/bin/xinput
첫 번째 방법은 안전하지만 두 번째 방법을 사용 xinput
하면 새 위치를 알고있는 경우 원본을 직접 호출하여이를 피할 수 있습니다.
xinput
프로세스 중지 / 일시 정지xinput
비밀번호 또는 기록하지 않으려는 항목을 입력하기 전에 프로세스를 중지하거나 일시 중지 할 수 있습니다 . 이렇게하려면 ~/.bashrc
파일 끝에 다음 bash 함수를 추가 하십시오.
processof () {
xinput_pids=" $(pidof $1) "
if [ "$xinput_pids" = " " ]; then
echo "Nothing to stop/pause/continue. $1: no such process!"
return
fi
for pid in $xinput_pids; do
case $2 in
"stop")
kill $pid
echo "$1: stopped"
;;
"pause")
kill -stop $pid
echo "$1: paused"
;;
"continue")
kill -cont $pid
echo "$1: continue"
;;
*)
echo "$1 is runnig"
;;
esac
done
}
이제 터미널을 다시 연 후 언제든지이 기능을 사용하여 다음을 수행 할 수 있습니다.
모든 xinput
프로세스를 중지 / 종료하십시오 .
processof xinput stop
모든 xinput
프로세스를 일시 중지합니다 :
processof xinput pause
모든 xinput
프로세스를 재개하십시오 .
processof xinput continue
실제로이 기능을 사용하면 암호를 입력하는 등의 작업을 수행하기 전에 원하는 프로세스를 중지 / 일시 정지 할 수 있습니다.
processof [process_name] [stop|pause|continue]
시스템에서 활성 키로거를 감지하는 방법을 감지하는 방법을 모르면 다음을 참조하십시오.
이러한 방법이 최선의 해결책은 아니지만 어쩌면 당신이 할 수있는 일에 대한 아이디어를주기를 바랍니다.
xinput
심지어 SUID (-rwxr-XR-X 1 루트 루트 48504 2012년 8월 15일는 / usr / 빈 / XInput에)입니다