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 xinput
comando, mas os mesmos métodos podem ser usados para qualquer outro registrador de chaves. Se um registrador de chaves usa o xinput
comando, 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 xinput
comando
Você pode restringir os usuários padrão a usar o xinput
comando usando o seguinte comando:
sudo chmod go-x /usr/bin/xinput
2. Restrinja os usuários padrão para usar o xinput
comando com test-xi2
argumento
Você pode restringir os usuários padrão a usar o xinput
comando com test-xi2
argumento 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 xinput
arquivo 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 xinput
comando 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 xinput
diretamente se ele souber seu novo local.
3. Parar / pausar qualquer xinput
processo
Você pode interromper ou pausar qualquer xinput
processo 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 ~/.bashrc
arquivo:
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 xinput
processos:
processof xinput stop
pausar todos os xinput
processos:
processof xinput pause
retomar todos os xinput
processos:
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 ...