回答:
それはようことはできません任意のキーストロークはXサーバに渡され、XINPUT /任意のプログラムのために利用できるようになります。(実際、これは設計の一部です)。ウェイランドとミールのような新しいディスプレイ・サーバはXに、このようなセキュリティ上の問題を修正している唯一の真の解決策ではなく、XのウェイランドまたはmiRを用いることであろうこのブログの記事は、この問題の詳細について説明します。
他の人がここで言ったように、標準ユーザーにキーロガーの実行を制限するか、キーロガープロセスを停止/一時停止する場合にのみ、gnome-terminalなどのプログラムのみをキーロギングから保護することはできません。
次に、xinput
コマンドの場合にこれらを実行する方法を示しますが、他のキーロガーにも同じ方法を使用できます。キーロガーがxinput
コマンドを使用する場合、メソッドを適用する限りメソッドを適用する必要はありませんxinput
。
xinput
コマンドの使用を標準ユーザーに制限する次のコマンドを使用して、コマンドの使用を標準ユーザーに制限xinput
できます。
sudo chmod go-x /usr/bin/xinput
xinput
をtest-xi2
指定してコマンドを使用するように標準ユーザーを制限するこのコマンドのラッパーを記述することで、標準ユーザーxinput
がtest-xi2
引数付きのコマンドを使用するように制限できます。これを行うには、ターミナルに移動し、以下の手順に従います。
ルート権限を取得します。
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
第1の方法は第二の方法を使用して、安全性ですが、ユーザーはまだ元を呼び出すことによって、それを回避することがありxinput
、彼はその新しい場所を知っていれば、直接。
xinput
プロセスの停止/一時停止xinput
パスワードなど、ログに記録したくないものを入力する前に、プロセスを停止または一時停止できます。これを行うには、~/.bashrc
ファイルの最後に次のbash関数を追加します。
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]
システムでアクティブなキーロガーを検出する方法を検出する方法がわからない場合は、以下を参照してください。
これらの方法はおそらく最善の解決策ではありませんが、何ができるかについてのアイデアをお伝えしたいと思います...
xinput
SUIDでもない(-rwxr-xr-x 1ルートルート48504 2012年8月15日/ usr / bin / xinput)