root権限なしで/ dev / inputデバイスから読み取る

root権限なしで/ dev / inputデバイスから読み取る

/dev/inputroot権限なしでデバイスからデータを読み取る方法はありますか?

私の場合は、Pythonライブラリを使用したいと思います。evdev複数のキーボードから読み取る(それでどのキーボードから信号が出てくるのかがわかります)、単に使用することはstdin不可能です。

いつもsudo権限でプログラムを呼び出す必要はありません。たとえば、ディレクトリをchmodできますか/dev/input(私の場合はセキュリティは重要ではありません)?

それとも、入力デバイスから直接読み取ることができる別の方法はありますか?

答え1

これスタックオーバーフローこの記事があなたの質問に答えているようです。

2番目の答えを参照してください。許容される回答は次のとおりです。

デバイスファイルがどのグループに属しているかを確認してください。たとえば、次のような結果が得られます。

$ ls -l /dev/入力/
...
crw-rw---- 1 rootplugdev 13, 64 11月4日 18:01 event0
crw-rw---- 1 rootplugdev 13, 65 11月4日 18:01 イベント 1
crw-rw---- 1 rootplugdev 13, 66 11月4日 18:01 イベント 2
crw-rw---- 1 rootplugdev 13、67 11月4日18:01 event3
crw-rw---- 1 rootplugdev 13, 68 11月4日 18:01 event4
...

プログラムを実行しているユーザーは、システムのPlugdevグループに存在する必要があります。システムにも同様の状況がある可能性があります。

これをバイパスする方法(グループに参加せずにデバイスに読み書きする)を探している場合はいいえ。これは明らかにユーザーグループのセキュリティの目的を崩します。

イベントデバイスを直接読み取る別の方法は、適切なユーザ空間APIを使用することです。たとえば、キーボードを読むにはncursesを、マウスを読むにはGPMを使用します。

関連情報