web-dev-qa-db-fra.com

La propriété du groupe de règles udev ne fonctionne pas

J'ai ajouté une règle udev pour mon Arduino, mais le lien symbolique obtient le droit de propriété "root" au lieu de "dial dial".

$ 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

Mon utilisateur est membre du groupe "numérotation" mais j'obtiens toujours une erreur d'autorisation refusée lorsque j'essaie de communiquer avec le périphérique.

Il n'y a pas de problèmes lorsque j'utilise le périphérique "par défaut" "/ etc/ttyACM3".

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

J'ai essayé de redémarrer le service udev et de redémarrer mon ordinateur. Comment puis-je réparer cela?

3
tirithen

Je ne suis pas sûr qu'il y ait un moyen de définir l'utilisateur et le groupe pour un lien symbolique avec udev. Je n'en vois pas non plus. Je doute aussi qu'on en ait besoin.

Je me suis connecté à tty6 et en tant que root, j'ai créé un lien symbolique/tmp/tty6 vers/dev/tty6. Après que j'ai créé son utilisateur et son groupe, ils étaient tous les deux root, mais/dev/tty6 était la propriété de moi.

J'ai pu utiliser

echo hi >/dev/tty6

mais aussi echo hi>/tmp/tty6

La raison en est que l'autorisation nécessaire est portée par l'inode final désigné, pas par le lien symbolique.

Si je ne me trompe pas, il existe une autre raison au problème que vous rencontrez, bien que je suppose qu'il se pourrait que le programme que vous utilisez ne regarde pas correctement les autorisations sur le lien symbolique.

Si tel est le cas, vous pouvez peut-être créer votre propre lien et l'utiliser à la place d'un ensemble d'udev.

ln -s /dev/arduino ~/arduino

devrait produire un lien symbolique vers cible de/dev/arduino mais avec votre utilisateur et votre groupe.

En tant que test, en tant que root, vous pouvez également modifier le groupe vous-même sur le lien symbolique créé par udev et voir si cela vous aide lorsque vous passez par/dev/arduino.

3
John S Gruber