VLCやAudacityなどのアプリケーションにWebカメラやマイクから録音するように指示すると、スリープ状態の場合はハードウェアをスリープ解除し、干渉なしに作業を実行します。
これは良いことですが、プライバシーの懸念から、私はいつも疑問に思っていました。ハードウェアデバイスへのアプリケーションアクセスを制限する方法はありますか?
これを書いているときに、SELinuxやAppArmorのようなものを使用して/dev/something
へのアクセスを制限するというアイデアを思いつきました。これは可能ですか?より良いまたはより簡単な方法はありますか?
また、ウェブカメラとマイク以外に気になるハードウェアはありますか?
従来の方法は、プログラム/プログラムのセットの疑似ユーザー(games-userなど)を作成し、このユーザーをアクセスするデバイス(カメラなど)のグループに割り当てて、プログラムを実行することだと思います。 )このユーザーとしてのSUID。 「その他」(所有者またはグループではない)のアクセス許可を削除した場合、所有者とグループのメンバー(疑似ユーザーを含む)のみがアクセスできます。
さらに、プログラムのグループを使用して、プログラムの実行を許可するユーザーを制限することができます。ビデオ会議の開催を許可されたユーザーのグループ(会議など)を作成し、関連するプログラム(カメラとマイクへの特別なアクセスを許可されたプログラム)の実行をこのグループのみに制限します。
+++
もう1つの方法は、デバイスに属する特別なグループとしてプログラムSGIDを実行し、「その他」の権限を削除することです。もちろん、これは、プログラムが1つの制限されたデバイスにのみアクセスする必要がある場合にのみ機能します。