Eu tenho uma balança USB, uma USB HID. Atualmente, quando está conectado, as permissões permitem apenas que o superusuário acesse. Como posso configurar o udev para permitir que alguém acesse este dispositivo? Eu tenho o ID do fornecedor e do produto, mas gostaria de correspondê-lo com base no tipo HID.
No momento, estou tendo problemas para encontrar qualquer regra existente que se aplique a isso (procurei por "hidraw" no /lib/udev/rules.d
e /etc/udev/rules.d
, entre outras coisas.
fonte
.rules
extensão. Um arquivo com uma.conf
extensão não funcionará.lsusb -vvv
para obter o idProduct e idVendor #lsusb
é um bom começo para ver o que está conectado e os IDs.idVendor
e asidProduct
correspondências diferenciam maiúsculas de minúsculas , portanto o IDDA77
não funciona para mim, masda77
funciona. (Diagnóstico útiludevadm info --attribute-walk /dev/bus/usb/008/023
:, dispositivo de barramento 008 023 meu exemplo;lsusb
para o seu.) Depois de adicionar uma regrasudo udevadm control --reload-rules
esudo udevadm trigger
evitar a reinicialização: as alterações são segundos depois disso. ATTR vs ATTRS não fez nenhuma diferença. Meu arquivo .rules lê:SUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
.Apenas para o resumo:
Você pode filtrar por:
E use:
== Compare para igualdade.
! = Compare pela desigualdade.
= Atribua um valor a uma chave. As chaves que representam uma lista são redefinidas e apenas esse valor único é atribuído.
+ = Adicione o valor a uma chave que contém uma lista de entradas.
: = Atribuir um valor a uma chave finalmente; não permitir alterações posteriores.
Você pode atribuir a um dispositivo específico um novo caminho específico em / dev / ...
Exemplo:
Resulta em:
Você pode acessar o dispositivo via '/ dev / hiddevx' ou via '/ dev / myhid' facilmente, todos os usuários do grupo 'cdrom' podem ler no dispositivo. O proprietário 'user28' pode ler e escrever.
ou mais simples:
Resultados em: Todo usuário pode acessar todos os dispositivos de contato do fornecedor 0x16c0
Para detalhes, consulte: Documentos
fonte
:=
não é para comparações. Os documentos dizem "Atribuir um valor a uma chave finalmente; não permitir alterações posteriores".Caso você precise alterar as
ttyACM0
permissões (como eu) , estas são minhas configurações:Falhou quando tentei especificar o fornecedor e o ID do produto. Não sei por quê.
fonte
Se for um dispositivo HIDRAW, é necessário
onde X é o número do dispositivo oculto, por exemplo, hidraw0. você pode fazer
para ver uma lista :) Ou apenas
para definir para todos os dispositivos hidraw, provavelmente não recomendado.
fonte
Atualização / esclarecimento do Ubuntu 18.04:
A resposta de Kees Cook é próxima, mas requer duas alterações para funcionar em 18.04 (a versão atual e a única em que eu testei isso).
Mas com seus valores hexadecimais idVendor e idProduct.
fonte
ATTRS
tanto para fornecedor e ID do produto? Em seguida, seu exemplo de código está errado (assim como você indica duas linhas posteriormente).