Como otros dijeron aquí, no es posible proteger solo un programa como gnome-terminal u otro terminal del registro de claves, solo si restringe a los usuarios estándar para ejecutar cualquier registrador de claves o si detiene / pausa cualquier proceso del registrador de claves.
A continuación, le mostraré cómo puede hacer esto en caso de xinput
comando, pero se pueden usar los mismos métodos para cualquier otro registrador de teclas. Si un registrador de teclas usa el xinput
comando, no es necesario aplicar el método sobre él siempre y cuando lo aplique xinput
.
1. Restrinja a los usuarios estándar para usar el xinput
comando
Puede restringir a los usuarios estándar para que usen el xinput
comando con el siguiente comando:
sudo chmod go-x /usr/bin/xinput
2. Restrinja a los usuarios estándar para que usen el xinput
comando con test-xi2
argumento
Puede restringir el uso de usuarios estándarxinput
comandos con test-xi2
argumentos escribiendo un contenedor para este comando. Para hacer esto, vaya a la terminal y siga las instrucciones a continuación:
Obtenga privilegios de root:
sudo -i
Mueva el xinput
archivo en otro directorio que no esté en la RUTA de ningún usuario (por ejemplo/opt
):
mv /usr/bin/xinput /new/path/to/xinput
Crea tu envoltura para xinput
comando en /usr/bin
:
gedit /usr/bin/xinput
Agregue el siguiente script dentro:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
Guarde el archivo y ciérrelo.
Haga que el nuevo contenedor sea ejecutable:
chmod +x /usr/bin/xinput
Si bien el primer método es la seguridad, con el segundo método, el usuario aún puede eludirlo llamando al original xinput
directamente si conoce su nueva ubicación.
3. Detener / pausar cualquier xinput
proceso
Puede detener o pausar cualquier xinput
proceso antes de ingresar una contraseña o cualquier otra cosa que no desee que se registre. Para hacer esto, agregue la siguiente función bash al final de su ~/.bashrc
archivo:
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
}
Ahora, después de volver a abrir su terminal, en cualquier momento que desee, con esta función puede:
detener / matar todos los xinput
procesos:
processof xinput stop
pausa todos los xinput
procesos:
processof xinput pause
reanudar todos los xinput
procesos:
processof xinput continue
De hecho, con esta función puede detener / pausar cualquier proceso que desee antes de hacer algo (como ingresar la contraseña):
processof [process_name] [stop|pause|continue]
Si no sabe cómo detectar cómo detectar un keylogger activo en su sistema, consulte:
Quizás estos métodos no sean las mejores soluciones, pero espero darle una idea de lo que puede hacer ...