Comme d'autres l'ont dit ici, il n'est pas possible de protéger uniquement un programme comme gnome-terminal ou un autre terminal contre la journalisation des clés, uniquement si vous limitez les utilisateurs standard à exécuter un enregistreur de frappe ou si vous arrêtez / suspendez tout processus d'enregistreur de frappe.
Ensuite, je vais vous montrer comment vous pouvez faire cela en cas de xinput
commande, mais les mêmes méthodes peuvent être utilisées pour tout autre enregistreur de frappe. Si un enregistreur de frappe utilise une xinput
commande, il n'est pas nécessaire de lui appliquer la méthode tant que vous l'appliquez xinput
.
1. Restreindre les utilisateurs standard à utiliser la xinput
commande
Vous pouvez restreindre les utilisateurs standard à utiliser la xinput
commande à l'aide de la commande suivante:
sudo chmod go-x /usr/bin/xinput
2. Limitez les utilisateurs standard à utiliser la xinput
commande avec test-xi2
argument
Vous pouvez restreindre les utilisateurs standard à utiliser la xinput
commande avec test-xi2
argument en écrivant un wrapper pour cette commande. Pour ce faire, allez dans le terminal et suivez les instructions ci-dessous:
Obtenez les privilèges root:
sudo -i
Déplacez le xinput
fichier dans un autre répertoire qui n'est dans le CHEMIN d'aucun utilisateur (par exemple /opt
):
mv /usr/bin/xinput /new/path/to/xinput
Créez votre wrapper pour la xinput
commande dans /usr/bin
:
gedit /usr/bin/xinput
Ajoutez le script suivant à l'intérieur:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
Enregistrez le fichier et fermez-le.
Rendez le nouveau wrapper exécutable:
chmod +x /usr/bin/xinput
Alors que la première méthode est la sécurité, en utilisant la deuxième méthode, l'utilisateur peut toujours la contourner en appelant xinput
directement l'original s'il connaît son nouvel emplacement.
3. Arrêter / suspendre tout xinput
processus
Vous pouvez arrêter ou suspendre tout xinput
processus avant d'entrer un mot de passe ou toute autre chose que vous ne souhaitez pas enregistrer. Pour ce faire, ajoutez la fonction bash suivante à la fin de votre ~/.bashrc
fichier:
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
}
Maintenant, après avoir rouvert votre terminal, à tout moment, en utilisant cette fonction, vous pouvez:
arrêter / tuer tous les xinput
processus:
processof xinput stop
suspendre tous les xinput
processus:
processof xinput pause
reprendre tous les xinput
processus:
processof xinput continue
En fait, avec cette fonction, vous pouvez arrêter / suspendre tout processus que vous souhaitez avant de faire quelque chose (comme entrer le mot de passe):
processof [process_name] [stop|pause|continue]
Si vous ne savez pas comment détecter comment détecter un enregistreur de frappe actif sur votre système, voir:
Ces méthodes ne sont peut-être pas les meilleures solutions, mais j'espère vous donner une idée de ce que vous pouvez faire ...