Estou usando duas regras do udev, como segue, para fornecer aos membros do grupo leds acesso a todos os LEDs:
SUBSYSTEM=="leds", ACTION=="add", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
SUBSYSTEM=="leds", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R leds /sys%p", RUN+="/bin/chmod -R g=u /sys%p"
Observe que a regra ACTION=="change" é necessária para manipular atributos criados dinamicamente. Por exemplo, se o gatilho do LED estiver definido como "timer" ( echo timer > trigger ), os atributos extras delay_on e delay_off serão criados. A ação change é especificada para que esses novos atributos tenham seus grupos e permissões definidos.
Percebi que um evento change é gerado toda vez que o LED é desativado escrevendo 0 to /sys/class/leds/.../brightness . Isso parece dever-se ao fato de a limpeza do código do driver LED do Linux ser acionada sempre que o brilho é definido como 0 . É por isso que a segunda regra tem a condição ENV{TRIGGER}!="none" , para evitar que a regra seja acionada toda vez que um LED é desativado.