USBスケール、USB HIDがあります。現在、プラグインが接続されている場合、アクセス許可ではスーパーユーザーのみがアクセスできます。誰でもこのデバイスにアクセスできるようにudevを設定するにはどうすればよいですか?ベンダーIDと製品IDがありますが、代わりにHIDタイプに基づいて一致させたいと思います。
現時点では、これに適用される既存のルールを見つけるのに問題があります(/lib/udev/rules.d
および/etc/udev/rules.d
の "hidraw"を他のものと区別しました)。
通常、これは/etc/udev/rules.d
に次のような内容の50-usb-scale.conf
という名前のファイルを追加することで行われます。
SUBSYSTEM=="usb", ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2", MODE="0666"
HEX1とHEX2は、それぞれベンダーと製品IDに置き換えられます。
代わりにインターフェイスタイプで一致するには、ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2"
を03
(HID)であるbInterfaceClass
の一致に置き換えることができます。
SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", MODE="0666"
ただし、マウスとキーボードもキャッチされることに注意してください。
要約だけ:
以下をフィルタリングできます。
そして使用:
==等しいかどうかを比較します。
!=不等式を比較します。
=キーに値を割り当てます。リストを表すキーはリセットされ、この単一の値のみが割り当てられます。
+ =エントリのリストを保持するキーに値を追加します。
:=最後にキーに値を割り当てます。後の変更を禁止します。
/ dev/...で特定のデバイスに特定の新しいパスを指定できます。
例:
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", ATTRS{serial}=="1234567", GROUP="cdrom", OWNER="user28", MODE="0640", SYMLINK+="myhid"
結果:
デバイスにアクセスするには、「/ dev/hiddevx」または「/ dev/myhid」を使用して簡単にアクセスできます。グループ「cdrom」のすべてのユーザーがデバイスから読み取ることができます。所有者「user28」は読み書きできます。
または最も単純な:
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", MODE="0666"
結果:すべてのユーザーはベンダー0x16c0からすべてのhiddeviceにアクセスできます
詳細については、以下を参照してください: Docs
(私のように)ttyACM0
パーミッションを変更する必要がある場合、これは私の設定です:
KERNEL=="ttyACM0", MODE="0777"
ベンダーと製品IDを指定しようとすると失敗しました。理由はわかりません。
Ubuntu 18.04アップデート/説明:
Kees Cookの答えは近いですが、18.04で機能するために2つの変更が必要です(現在のリリースで、これをテストしたのは1つだけです)。
バス001デバイス011:ID 04b8:014a Seiko Epson Corp.
SUBSYSTEM == "usb"、ATTRS {idVendor} == "04b8"、ATTR {idProduct} == "014a"、MODE = "0666"ただし、idVendorおよびidProductの16進値は使用します。
HIDRAWデバイスの場合、
chmod 0666 /dev/hidrawX
ここで、Xは非表示のデバイス番号です(例:hidraw0)。できるよ
ls /dev/hid*
リストを表示するには:)または単に
Sudo chmod 0666 /dev/hidraw*
すべてのhidrawデバイスに設定するには、おそらく推奨されません。