Jak powiedzieli tutaj inni, nie można chronić tylko programu takiego jak terminal gnome lub inny terminal przed rejestrowaniem kluczy, tylko jeśli ograniczysz standardowych użytkowników do uruchamiania dowolnego rejestratora kluczy lub zatrzymasz / wstrzymasz dowolny proces rejestratora kluczy.
Następnie pokażę ci, jak możesz to zrobić w przypadku xinput
polecenia, ale te same metody mogą być użyte w każdym innym rejestratorze kluczy. Jeśli program rejestrujący klucze używa xinput
polecenia, nie jest konieczne stosowanie do niego metody tak długo, jak się ją stosuje xinput
.
1. Ogranicz standardowych użytkowników do korzystania z xinput
polecenia
Możesz ograniczyć standardowym użytkownikom korzystanie z xinput
polecenia za pomocą następującego polecenia:
sudo chmod go-x /usr/bin/xinput
2. Ogranicz standardowych użytkowników do używania xinput
polecenia z test-xi2
argumentem
Możesz ograniczyć standardowych użytkowników do używania xinput
polecenia z test-xi2
argumentem , pisząc opakowanie dla tego polecenia. Aby to zrobić, przejdź do terminalu i postępuj zgodnie z instrukcjami poniżej:
Uzyskaj uprawnienia roota:
sudo -i
Przenieś xinput
plik do innego katalogu, który nie znajduje się w ŚCIEŻCE żadnego użytkownika (na przykład /opt
):
mv /usr/bin/xinput /new/path/to/xinput
Utwórz opakowanie dla xinput
polecenia w /usr/bin
:
gedit /usr/bin/xinput
Dodaj następujący skrypt w środku:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
Zapisz plik i zamknij go.
Spraw, aby nowe opakowanie było wykonywalne:
chmod +x /usr/bin/xinput
Podczas gdy pierwszą metodą jest bezpieczeństwo, stosując drugą metodę, użytkownik może nadal ją obejść, dzwoniąc xinput
bezpośrednio do oryginału, jeśli zna jego nową lokalizację.
3. Zatrzymaj / wstrzymaj dowolny xinput
proces
Możesz zatrzymać lub wstrzymać dowolny xinput
proces przed wprowadzeniem hasła lub cokolwiek innego, czego nie chcesz rejestrować. Aby to zrobić, dodaj następującą funkcję bash na końcu ~/.bashrc
pliku:
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
}
Teraz, po ponownym otwarciu terminala, w dowolnym momencie, korzystając z tej funkcji, możesz:
zatrzymaj / zabij wszystkie xinput
procesy:
processof xinput stop
wstrzymaj wszystkie xinput
procesy:
processof xinput pause
wznowić wszystkie xinput
procesy:
processof xinput continue
W rzeczywistości za pomocą tej funkcji możesz zatrzymać / wstrzymać dowolny proces, który chcesz wykonać (np. Wprowadzenie hasła):
processof [process_name] [stop|pause|continue]
Jeśli nie wiesz, jak wykryć, jak wykryć aktywny keylogger w systemie, zobacz:
Te metody nie są może najlepszymi rozwiązaniami, ale mam nadzieję, że dam ci pojęcie o tym, co możesz zrobić ...