我将尝试让用户Bob拥有更改屏幕亮度的权限,也就是说:让Bob对/sys/class/backlight/intel_backlight/brightness具有读写权限。
使用:
使用:
udevadm info -a -p /sys/class/backlight/intel_backlight/
显示以下结果:
looking at device '/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight':
KERNEL=="intel_backlight"
SUBSYSTEM=="backlight"
DRIVER==""
ATTR{actual_brightness}=="7500"
ATTR{bl_power}=="0"
ATTR{brightness}=="7500"
ATTR{max_brightness}=="7500"
ATTR{type}=="raw"
.
.
.
所以我在/etc/udev/rules.d/30-brightness.rules中编写了一个udev规则。
30-brightness.rules
KERNEL=="intel_backlight", SUBSYSTEM=="backlight", RUN+="/usr/bin/find /sys/class/backlight/intel_backlight/ -type f -name brightness -exec chown bob:bob {} \; -exec chmod 666 {} \;"
即使重新启动后,文件权限仍保持为-rw-r--r-- 1 root root
。
我的问题是如何使用udev规则更改特定文件的权限,我做错了什么?
find
使用了完整路径,但未为chown
或chmod
使用,它们在路径上吗?这些实际上是文件(-type f
),在我的系统下,在/sys/class
下的大多数内容都是符号链接或目录。 - Cupcake Protocol/etc/udev/rules.d
中唯一存在的另一个规则是70-snap.core.rules
,因此不应覆盖我的规则。如果我在命令行中运行/usr/bin/find /sys/class/backlight/intel_backlight/ -type f -name brightness -exec /bin/chown bob:bob {} \; -exec /bin/chmod 666 {} \;
,它可以正常工作,但如果我在我的dev规则中运行它仍然不能工作。 - Guy