Как здесь говорили другие, невозможно защитить только программу наподобие gnome-Terminal или другого терминала от регистрации ключей, только если вы ограничиваете обычных пользователей в выполнении любого средства регистрации ключей или если вы останавливаете / приостанавливаете какой-либо процесс регистрации ключей.
Далее я покажу вам, как вы можете сделать это в случае xinput
команды, но те же методы можно использовать для любого другого ключевого регистратора. Если регистратор ключей использует xinput
команду, нет необходимости применять метод к нему, пока вы применяете его xinput
.
1. Ограничить использование стандартных xinput
команд
Вы можете ограничить использование обычными пользователями xinput
команды, используя следующую команду:
sudo chmod go-x /usr/bin/xinput
2. Ограничить использование стандартных пользователей xinput
команду с test-xi2
аргументом
Вы можете ограничить стандартных пользователей использовать xinput
команду с test-xi2
аргументом , написав оболочку для этой команды. Для этого зайдите в терминал и следуйте инструкциям ниже:
Получить права root:
sudo -i
Переместите xinput
файл в другой каталог, которого нет в PATH любого пользователя (например /opt
):
mv /usr/bin/xinput /new/path/to/xinput
Создайте свою обертку для xinput
команды в /usr/bin
:
gedit /usr/bin/xinput
Добавьте следующий скрипт внутри:
#!/bin/bash
if [ "$@" != "${@/test-xi2/}" -a "$(whoami)" != "root" ]; then
echo "`basename $0` $@: Permission denied"
else
/new/path/to/xinput $@
fi
Сохраните файл и закройте его.
Сделайте новый исполняемый файл оболочки:
chmod +x /usr/bin/xinput
В то время как первый метод является безопасным, используя второй метод, пользователь все равно может обойти его, вызвав оригинал xinput
напрямую если он знает его новое местоположение.
3. Стоп / пауза любой xinput
процесс
Вы можете остановить или приостановить любой xinput
процесс, прежде чем вводить пароль или что-либо еще, что вы не хотите регистрировать. Для этого добавьте следующую функцию bash в конец вашего ~/.bashrc
файла:
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
}
Теперь, когда вы снова откроете свой терминал, в любое время, используя эту функцию, вы можете:
остановить / убить все xinput
процессы:
processof xinput stop
приостановить все xinput
процессы:
processof xinput pause
возобновить все xinput
процессы:
processof xinput continue
Фактически, с помощью этой функции вы можете остановить / приостановить любой процесс, который вы хотите, прежде чем что-то сделать (например, ввести пароль):
processof [process_name] [stop|pause|continue]
Если вы не знаете, как обнаружить активный кейлоггер в вашей системе, см .:
Эти методы, возможно, не лучшие решения, но я надеюсь дать вам представление о том, что вы можете сделать ...