web-dev-qa-db-fra.com

comment désactiver l'usb basé sur l'id du vendeur dans l'environnement linux?

Je veux désactiver le port USB en fonction de l’identifiant du fournisseur dans l’environnement Linux. Je veux autoriser uniquement les usb spécifiques en fonction de l'identifiant du fournisseur.

3
subbarao

Cela devrait être possible en utilisant les règles udev, mais ce n’est probablement pas facile et nécessitera quelques expériences. Il est possible de faire accidentellement des choses mauvaises, telles que bloquer la souris et le clavier du travail nécessitant une restauration avec une clé USB active. Je n'ai pas testé ces commandes, caveat emptor.

Créez un nouveau fichier avec un numéro de priorité faible, par exemple /lib/udev/rules.d/20-block-usb.rules avec le contenu:

BUS=="usb", PROGRAM="/bin/filter_usb.sh %s{idVendor} %s{idProduct}", RESULT!="allow", OPTIONS+="ignore_device"

Lorsqu'un périphérique USB est inséré, /bin/filter_usb.sh doit être appelé avec les ID vendor et product du périphérique en tant qu'arguments et, à moins qu'il ne renvoie écho à allow, il doit alors être ignoré. , par exemple:

#!/bin/sh
vendor=$1
product=$2

if [ "$vendor" = "0123" ]; then
    if [ "$product" = "4567" ]; then
        echo allow
    fi
fi

Vous voudrez probablement examiner udevtest pour expérimenter des règles, et comme indiqué, vous devez vous assurer que votre souris, votre clavier, etc., sont inscrits sur la liste blanche. Vous souhaiterez peut-être limiter la règle de blocage aux périphériques de blocage USB en ajoutant SUBSYSTEM=="block", avant PROGRAM dans la règle d'origine.

1
chronitis