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.
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.