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 xinputcommande, mais les mêmes méthodes peuvent être utilisées pour tout autre enregistreur de frappe. Si un enregistreur de frappe utilise une xinputcommande, 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 xinputcommande
Vous pouvez restreindre les utilisateurs standard à utiliser la xinputcommande à l'aide de la commande suivante:
sudo chmod go-x /usr/bin/xinput
2. Limitez les utilisateurs standard à utiliser la xinputcommande avec test-xi2argument
Vous pouvez restreindre les utilisateurs standard à utiliser la xinputcommande avec test-xi2argument 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 xinputfichier 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 xinputcommande 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 xinputdirectement l'original s'il connaît son nouvel emplacement.
3. Arrêter / suspendre tout xinputprocessus
Vous pouvez arrêter ou suspendre tout xinputprocessus 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 ~/.bashrcfichier:
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 xinputprocessus:
processof xinput stop
suspendre tous les xinputprocessus:
processof xinput pause
reprendre tous les xinputprocessus:
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 ...