J'ai une balance USB, un USB HID. Actuellement, lorsqu'il est branché, les autorisations permettent uniquement au superutilisateur d'y accéder. Comment puis-je configurer udev pour permettre à quiconque d'accéder à cet appareil? J'ai les ID de fournisseur et de produit, mais je voudrais plutôt les faire correspondre en fonction du type HID.
En ce moment, j'ai du mal à trouver une règle existante qui s'applique à cela (j'ai convoité pour "cacher" dans /lib/udev/rules.d
et /etc/udev/rules.d
, entre autres).
la source
.rules
extension. Un fichier avec une.conf
extension ne fonctionnera pas.lsusb -vvv
pour obtenir l'idProduct et idVendorlsusb
c'est un bon début pour voir ce qui est connecté et les identifiants.idVendor
et lesidProduct
correspondances semblent sensibles à la casse , donc l'IDDA77
ne fonctionne pas pour moi mais leda77
fait. (Diagnostic pratique:,udevadm info --attribute-walk /dev/bus/usb/008/023
bus 008 périphérique 023 mon exemple;lsusb
pour le vôtre.) Après avoir ajouté une règle,sudo udevadm control --reload-rules
puissudo udevadm trigger
évite le redémarrage: les modifications sont quelques secondes après . ATTR vs ATTRS n'a fait aucune chance. Mon fichier .rules lit comme suit:SUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
.Juste pour le résumé:
Vous pouvez filtrer pour:
Et utilise:
== Comparer pour l'égalité.
! = Comparer l'inégalité.
= Attribuer une valeur à une clé. Les clés qui représentent une liste sont réinitialisées et seule cette valeur unique est affectée.
+ = Ajoutez la valeur à une clé contenant une liste d'entrées.
: = Attribuer enfin une valeur à une clé; interdire toute modification ultérieure.
Vous pouvez donner à un périphérique spécifique un nouveau chemin spécifique dans / dev / ...
Exemple:
Résulte en:
Vous pouvez accéder à l'appareil via '/ dev / hiddevx' ou via '/ dev / myhid' facilement, chaque utilisateur du groupe 'cdrom' peut lire à partir de l'appareil. Le propriétaire 'user28' peut lire et écrire.
ou le plus simple:
Résultats: chaque utilisateur peut accéder à tous les masques du fournisseur 0x16c0
Pour plus de détails, voir: Docs
la source
:=
n'est pas pour les comparaisons. Les documents indiquent "Attribuer une valeur à une clé, enfin; interdire toute modification ultérieure".Si vous devez modifier (comme moi) les
ttyACM0
autorisations, voici mes paramètres:Il a échoué lorsque j'ai essayé de spécifier le fournisseur et l'ID du produit. Je ne suis pas sûr pourquoi.
la source
Si c'est un appareil HIDRAW, vous devez
où X est le numéro de périphérique caché, par exemple hidraw0. tu peux faire
pour voir une liste :) Ou tout simplement faire
à définir pour tous les appareils cachés, probablement déconseillé.
la source
Mise à jour / clarification d'Ubuntu 18.04:
La réponse de Kees Cook est proche mais nécessite 2 changements pour fonctionner en 18.04 (la version actuelle et une seule sur laquelle j'ai testé cela).
Mais avec vos valeurs hexadécimales idVendor et idProduct.
la source
ATTRS
à la fois pour le fournisseur et l'ID de produit? Votre exemple de code est alors incorrect (tout comme vous déclarez deux lignes plus tard).