はい、udev ルールを記述できます。
/etc/udev/rules.d
で ファイル 30-mydevice.rules
を作成します (番号は 0 から 99 までで、スクリプトの実行順序のみを決定します。名前は重要ではありません。説明的なものにする必要があります。.rules
ただし、延長が必要です)
この例では、デバイスが USB ベースであり、そのベンダーと製品 ID がわかっていると仮定しています (lsusb -v
を使用して確認できます)。 )、そして mydevice
を使用しています ユーザーがデバイスを使用するために必要なグループ。その場合、これはファイルの内容である必要があります:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0123", SYSFS{idProduct}=="4567", ACTION=="add", GROUP="mydevice", MODE="0664"
MODE
0664 にすると、デバイスの所有者 (おそらくルート) と定義されたグループがデバイスに書き込むことができます。
1 つの方法は、対応する「デバイス グループ」にユーザーを追加することです。 Linux には、さまざまな種類のデバイス (ディスク、フロッピー、tty、ビデオ、cdrom など) 用のグループの全範囲があるため、/etc/group
で対応するグループにユーザーを追加できます。 .
別の方法は、「疑似ユーザー」(例:ゲームユーザー) を作成することです。このユーザーをデバイス グループに追加します。最後に、特定のプログラム (画像をスキャンするプログラムなど) の所有者をこのユーザーに変更し、chmod u+s
を設定します。 .これにより、プログラムは実際のユーザーではなく疑似ユーザーとして実行されるため、デバイスにアクセスできます。プログラムのグループを使用して、プログラムを実行できるユーザーを制限できます。
最後に、特定のデバイスを必要とするプログラムのグループをデバイス グループに設定し、chmod g+s
を設定できます。 .これにより、プログラムは (プログラムを実行する通常のユーザーの権限に加えて) グループの権限で実行されるため、デバイスへの拡張アクセスが可能になります。