Como outros disseram aqui, não é possível proteger apenas um programa como o gnome-terminal ou outro terminal do registro de chaves, apenas se você restringir os usuários padrão a executar qualquer registrador de chaves ou se você parar / pausar qualquer processo do registrador de chaves.
Em seguida, mostrarei como você pode fazer isso em caso de xinputcomando, mas os mesmos métodos podem ser usados para qualquer outro registrador de chaves. Se um registrador de chaves usa o xinputcomando, não é necessário aplicar o método nele, desde que você o aplique xinput.
1. Restrinja os usuários padrão para usar o xinputcomando
Você pode restringir os usuários padrão a usar o xinputcomando usando o seguinte comando:
sudo chmod go-x /usr/bin/xinput
2. Restrinja os usuários padrão para usar o xinputcomando com test-xi2argumento
Você pode restringir os usuários padrão a usar o xinputcomando com test-xi2argumento escrevendo um wrapper para este comando. Para fazer isso, entre no terminal e siga as instruções abaixo:
Obtenha privilégios de root:
sudo -i
Mova o xinputarquivo para outro diretório que não esteja no CAMINHO de nenhum usuário (por exemplo /opt):
mv /usr/bin/xinput /new/path/to/xinput
Crie seu wrapper para xinputcomando 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.
Torne o novo wrapper executável:
chmod +x /usr/bin/xinput
Enquanto o primeiro método é a segurança, usando o segundo método, o usuário ainda pode contorná-lo chamando o original xinputdiretamente se ele souber seu novo local.
3. Parar / pausar qualquer xinputprocesso
Você pode interromper ou pausar qualquer xinputprocesso antes para inserir uma senha ou qualquer outra coisa que não deseja que seja registrada. Para fazer isso, adicione a seguinte função bash no final do seu ~/.bashrcarquivo:
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 o seu terminal, quando quiser, usando esta função, você pode:
parar / matar todos os xinputprocessos:
processof xinput stop
pausar todos os xinputprocessos:
processof xinput pause
retomar todos os xinputprocessos:
processof xinput continue
De fato, com esta função, você pode interromper / pausar qualquer processo que desejar antes de executar algo (como digitar a senha):
processof [process_name] [stop|pause|continue]
Se você não sabe como detectar um keylogger ativo no seu sistema, consulte:
Talvez esses métodos não sejam as melhores soluções, mas espero ter uma idéia do que você pode fazer ...