udev для файла /sys не работает

udev для файла /sys не работает

Я пытаюсь установить атрибут группы для

root@luna:~# ls -l /sys/class/backlight/intel_backlight/brightness 
-rw-r--r-- 1 root root 4096 Sep 24 08:28 /sys/class/backlight/intel_backlight/brightness

Я создал правило в /etc/udev/rules.d/99-local.rules:

root@luna:/etc/udev/rules.d# cat 99-local.rules 
KERNEL=="intel_backlight", SUBSYSTEM=="backlight", GROUP="neil", mode="0664"

Если я systemctl перезапускаю udev, udevadm control -R или перезагружу правило не применяется. Что я сделал не так?

решение1

Udev создает записи файлов устройств в /dev. Правила Udev влияют на эти записи. Файлы в /sysявляются прямыми интерфейсами ядра, созданными ядром и не затрагиваемыми udev.

Если вы хотите изменить владельца или права доступа к файлу в /sys, сделайте это явно.

#!/bin/sh
chown neil /sys/class/backlight/intel_backlight/brightness
chmod 664 /sys/class/backlight/intel_backlight/brightness

Если устройство отображения запускает событие udev, то вы можете запустить этот скрипт с RUN=…действием. В качестве альтернативы запустите этот скрипт где-нибудь в процессе загрузки, например в /etc/rc.local.

решение2

Я только что наткнулся на этот вопрос. Правильный способ изменить разрешение и владельца файлов в /sys — использовать tmpfiles configs. Например, поместив следующее, вы /etc/tmpfiles.d/screen-backlight.confполучите то, что хотите:

m /sys/class/backlight/intel_backlight/brightness 0664 root some_group_that_neil_belongs_to - -

Ознакомьтесь man 5 tmpfiles.dсо всеми вариантами.

Связанный контент