Come altri hanno detto qui, non è possibile proteggere solo un programma come gnome-terminal o altri terminali dalla registrazione delle chiavi, solo se si limita agli utenti standard di eseguire qualsiasi registratore di chiavi o se si interrompe / mette in pausa qualsiasi processo di registrazione dei tasti.
Successivamente ti mostrerò come è possibile eseguire queste operazioni in caso di xinputcomando, ma gli stessi metodi possono essere utilizzati per qualsiasi altro registratore di chiavi. Se un registratore di chiavi utilizza il xinputcomando, non è necessario applicare il metodo su di esso finché lo si applica xinput.
1. Limitare gli utenti standard all'uso del xinputcomando
È possibile limitare gli utenti standard all'uso del xinputcomando utilizzando il comando seguente:
sudo chmod go-x /usr/bin/xinput
2. Limitare gli utenti standard all'uso del xinputcomando con test-xi2argomento
È possibile limitare gli utenti standard all'uso del xinputcomando con test-xi2argomento scrivendo un wrapper per questo comando. Per fare ciò, vai nel terminale e segui le istruzioni seguenti:
Ottieni i privilegi di root:
sudo -i
Sposta il xinputfile in un'altra directory che non si trova nel PERCORSO di un utente (ad esempio /opt):
mv /usr/bin/xinput /new/path/to/xinput
Crea il tuo wrapper per il xinputcomando in /usr/bin:
gedit /usr/bin/xinput
Aggiungi il seguente script all'interno:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
Salva il file e chiudilo.
Rendi eseguibile il nuovo wrapper:
chmod +x /usr/bin/xinput
Mentre il primo metodo è la sicurezza, utilizzando il secondo metodo, l'utente può comunque aggirarlo chiamando xinputdirettamente l'originale se conosce la sua nuova posizione.
3. Arresta / metti in pausa qualsiasi xinputprocesso
È possibile interrompere o mettere in pausa qualsiasi xinputprocesso prima di inserire una password o qualsiasi altra cosa che non si desidera registrare. Per fare ciò, aggiungi la seguente funzione bash alla fine del tuo ~/.bashrcfile:
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
}
Ora, dopo aver riaperto il terminale, ogni volta che vuoi, usando questa funzione puoi:
interrompere / uccidere tutti i xinputprocessi:
processof xinput stop
mettere in pausa tutti i xinputprocessi:
processof xinput pause
riprendere tutti i xinputprocessi:
processof xinput continue
In effetti, con questa funzione è possibile interrompere / mettere in pausa qualsiasi processo prima di fare qualcosa (come inserire la password):
processof [process_name] [stop|pause|continue]
Se non sai come rilevare come rilevare un keylogger attivo sul tuo sistema, vedi:
Questi metodi forse non sono le migliori soluzioni, ma spero di darti un'idea di cosa puoi fare ...