Conceder acesso ao aplicativo / usuário ao dispositivo USB

3

Eu tenho um aplicativo Mono em execução no Raspbian que usa um determinado dispositivo USB através da libusb. Se eu iniciar o aplicativo normalmente, ele não conseguirá abrir o dispositivo. Se eu iniciar o aplicativo como root (ou através do sudo), o aplicativo abrirá o dispositivo com êxito.

Como posso dar ao aplicativo ou usuário as permissões adequadas para o dispositivo USB, para que o aplicativo não precise ser iniciado como root?

    
por GTHvidsten 06.06.2016 / 13:52

1 resposta

1

Para conceder a um grupo específico acesso a um dispositivo USB, você deve adicionar uma regra a udev in /etc/udev/rules.d/ . Eu adicionei um arquivo chamado 50-MyDevice.rules que contém esta linha:

SUBSYSTEM=="usb",ATTRS{idVendor}=="abcd",ATTRS{idProduct}=="1234",MODE="0660",GROUP="mygroup",SYMLINK+="mydevice%n"

Onde eu substituí os valores após idVendor e idProduct com o VID e PID do dispositivo USB. Preste especial atenção ao número de sinais de igual após cada parâmetro!

Depois disso, reiniciei o linux.

Agora, toda vez que eu conecto o dispositivo USB (ou se eu conecto vários dispositivos do mesmo dispositivo), recebo um link simbólico chamado /dev/mydevice1 ou /dev/mydevice2 . Este é um link simbólico apontando para /dev/bus/usb/001/001 (ou no segundo caso /dev/bus/usb/001/002 ). Os alvos desses links simbólicos têm o modo apropriado e permissões de grupo definidas no arquivo de regras.

    
por 07.06.2016 / 20:30