propriedade do grupo de regras do udev não está funcionando

3

Eu adicionei uma regra do udev para o meu Arduino, mas o link simbólico obtém a propriedade "root root" em vez de "root dialout".

$ cat /etc/udev/rules.d/47-Arduino.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="0001", MODE="0666", SYMLINK+="arduino", GROUP="dialout"

$ ls -la /dev/ar*
lrwxrwxrwx 1 root root 15 sep  8 11:02 /dev/arduino -> bus/usb/003/007

$ ls -la /dev/bus/usb/003/007 
crw-rw-r-- 1 root dialout 189, 262 sep  8 11:12 /dev/bus/usb/003/007

Meu usuário é membro do grupo "discagem", mas ainda recebo permissão de erro ao tentar comunicar-se com o dispositivo.

Não há problemas quando estou usando o dispositivo "padrão" "/ etc / ttyACM3".

$ ls -la /dev/ttyACM3 
crw-rw---- 1 root dialout 166, 3 sep  8 11:12 /dev/ttyACM3

Eu tentei reiniciar o serviço do udev e reiniciar o computador. Como posso consertar isso?

    
por tirithen 08.09.2012 / 11:17

1 resposta

3

Não tenho certeza se existe uma maneira de definir o usuário e o grupo para um link simbólico com o udev. Eu também não vejo um. Eu também estou duvidando se alguém deve ser necessário.

Eu entrei no tty6 e, como root, criei um link simbólico / tmp / tty6 para / dev / tty6. Depois que eu fiz o seu usuário e grupo foram ambos root, mas / dev / tty6 foi de minha propriedade.

Eu consegui usar

echo hi >/dev/tty6

mas também     echo hi > / tmp / tty6

A razão é que a permissão necessária é levada pelo inode final apontado, não pelo link simbólico.

Se eu estiver certo, há outro motivo para o problema que você está tendo, embora eu ache que pode ser que o programa que você está usando veja incorretamente as permissões no link simbólico.

Se esse for o caso, como uma evasão, talvez você possa criar seu próprio link e usá-lo em vez de um conjunto de udev.

ln -s /dev/arduino ~/arduino

deve produzir um link simbólico para o alvo do / dev / arduino, mas com o seu usuário e grupo.

Como teste, como root, você também pode alterar o grupo você mesmo no link simbólico criado pelo udev e ver se ele ajuda ao passar por / dev / arduino.

    
por John S Gruber 09.09.2012 / 01:47