Para fazer isso corretamente com o udev, você precisa definir as configurações para bloquear por padrão em todas as portas USB e, em seguida, gravar regras para corresponder aos dispositivos e permitir o que você deseja (nesse caso, tudo na maioria das portas, e apenas dispositivos MSC e UAS em uma porta específica). Se não for feito desta forma, você tem um período muito curto de tempo durante o qual o dispositivo fica visível para o sistema antes de ser bloqueado, o que pode negar completamente qualquer benefício em bloqueá-lo, já que os drivers do kernel começarão a conversar além da enumeração antes de bloqueá-lo.
No que diz respeito ao próprio script, talvez você não precise dele. Dependendo de onde na hierarquia você corresponde à regra do udev, você deve ser capaz de definir apenas o atributo authorized
para permitir as coisas.
Alternativamente, dê uma olhada em usbguard . É um serviço dedicado para lidar com esse tipo de coisa. Infelizmente, ele não é pré-empacotado em muitas distros, mas observar como isso funciona pode ser útil para descobrir como fazer isso com o udev.