我正在尝试设置组属性
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 restart udev、udevadm control -R,还是reboot,规则都不会应用。我做错了什么?
答案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 配置。例如,将以下内容放入/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
参考资料 中的所有选项。