Como outros disseram aqui, não é possível proteger apenas um programa como o terminal gnome ou outro terminal do registro de chaves, somente se você restringir os usuários padrão a executarem qualquer registrador de chaves ou se você parar / pausar qualquer processo de registro de chaves. / p>
Em seguida, mostrarei como você pode fazer isso no caso do comando xinput
, mas os mesmos métodos podem ser usados para qualquer outro keylogger. Se um registrador de chaves usar o comando xinput
, não será necessário aplicar o método a ele, contanto que você o aplique em xinput
.
1. Restringir usuários padrão a usar o comando xinput
Você pode impedir que usuários padrão usem o comando xinput
usando o seguinte comando:
sudo chmod go-x /usr/bin/xinput
2. Restringir usuários padrão a usar o comando xinput
com test-xi2
argumento
Você pode impedir que usuários padrão usem o comando xinput
com test-xi2
argumento escrevendo um wrapper para este comando. Para fazer isso, vá no terminal e siga as instruções abaixo:
-
Obtenha privilégios de root:
sudo -i
-
Mova o arquivo xinput
em outro diretório que não esteja no PATH de nenhum usuário (por exemplo /opt
):
mv /usr/bin/xinput /new/path/to/xinput
-
Crie seu wrapper para o comando xinput
em /usr/bin
:
gedit /usr/bin/xinput
Adicione o seguinte script dentro:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "'basename $0' $@: Permission denied"
else
/new/path/to/xinput $@
fi
Salve o arquivo e feche-o.
-
Crie o novo executável do wrapper:
chmod +x /usr/bin/xinput
Enquanto o primeiro método é segurança, usando o segundo método, o usuário ainda pode contorná-lo chamando o original xinput
diretamente se ele souber sua nova localização.
3. Parar / pausar qualquer xinput
process
Você pode interromper ou pausar qualquer processo xinput
antes de inserir uma senha ou qualquer outra coisa que não deseja registrar. Para fazer isso, adicione a seguinte função bash no final do seu arquivo ~/.bashrc
:
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
}
Agora, depois de reabrir seu terminal, sempre que desejar, usando essa função, você poderá:
-
interrompe / elimina todos os processos xinput
:
processof xinput stop
-
pause todos os processos xinput
:
processof xinput pause
-
retomar todos os processos xinput
:
processof xinput continue
Na verdade, com esta função você pode parar / pausar qualquer processo que você deseja fazer antes (como digitar a senha):
processof [process_name] [stop|pause|continue]
Se você não souber como detectar um keylogger ativo em seu sistema, consulte:
Esses métodos talvez não sejam as melhores soluções, mas espero que você tenha uma ideia sobre o que você pode fazer ...