web-dev-qa-db-ja.com

rules.dでUSBフラッシュドライブのみにルールを設定する方法

簡単な質問:/lib/udev/rules.d/カタログでのみUSBフラッシュドライブのルールを追加する方法は?

たとえばPCのUSBフラッシュドライブのみを挿入したい場合。または、フラッシュドライブのみを許可します。そのためのデバイスタイプ/グルーポットはありますか?

誰もnoobの例を提供できますか?簡単に解決できることを願っています:)

3
mr.boris

私は少し前に例を使って同様の質問に答えました:

I/Oを検出したときにスクリプトを実行する

このコマンドを使用して、

udevadm monitor --property

USBを挿入し、使用するデバイスに共通のプロパティを確認します。例:

ID_TYPE=disk
ID_USB_DRIVER=usb-storage

次に、ルールを作成します

Sudo gedit /etc/udev/rules.d/96-myusb.rules

これらの値を

ACTION=="add", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk", ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-add.sh"

ACTION=="remove", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk",ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-remove.sh"

ルールファイルは、ENV{ID_TYPE}およびENV{ID_USB_DRIVER}に一致するデバイスにのみ影響します。他のデバイスには影響しません。残りのデバイスを制限する場合は、残りのデバイスに一致し、RUNで何もしないルールを作成できます。

特定のUSBデバイスが特定のUSBポートに接続されているときにのみアクションを実行する場合は、ENV {DEVPATH} = "yourUSBPATH"をルールファイルに追加してみてください。使用するポートにデバイスを接続したときにudevadm monitor --propertyが報告するパスをyourUSBPATHに置き換えます。これはテストしていませんが、論理的なアプローチだと思います。

1
Katu