web-dev-qa-db-fra.com

comment définir la règle uniquement pour les lecteurs flash USB dans rules.d

Question simple: comment ajouter une règle pour les lecteurs flash USB uniquement dans le catalogue /lib/udev/rules.d/?

Par exemple si je veux autoriser uniquement l’installation de lecteurs flash USB pour mon PC. Ou n'autorise que mon lecteur flash. Existe-t-il un type d'appareil/groupe à cette fin?

Quelqu'un pourrait-il donner des exemples pour noob, s'il vous plaît? J'espère que c'est facile à résoudre :)

3
mr.boris

J'ai répondu à une question similaire avec un exemple il y a quelque temps:

Exécution du script quand il détecte une E/S

Utilisez cette commande,

udevadm monitor --property

Insérez la clé USB et vérifiez une propriété commune aux périphériques que vous souhaitez utiliser, par exemple:

ID_TYPE=disk
ID_USB_DRIVER=usb-storage

Puis créez votre règle

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

avec ces valeurs

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"

Le fichier de règles n'affectera que les périphériques correspondant à ENV{ID_TYPE} et ENV{ID_USB_DRIVER}. Cela n'affectera aucun autre appareil. Si vous souhaitez restreindre le reste des périphériques, vous pouvez peut-être créer une règle qui correspond au reste des périphériques et ne fait rien dans le RUN.

Si vous souhaitez exécuter l'action uniquement lorsqu'un périphérique USB donné est connecté à un port USB spécifique, essayez d'ajouter ENV {DEVPATH} = "yourUSBPATH" au fichier de règles. Remplacez yourUSBPATH par le chemin que udevadm monitor --property indique lorsque vous connectez le périphérique au port que vous souhaitez utiliser. Je n'ai pas testé cela, mais je pense que c'est une approche logique.

1
Katu