如何使用 udev 规则更改特定文件权限?
How to change specific file permissions using udev rule?
我正在尝试让我的用户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 规则更改特定文件权限,我做错了什么?
我已经解决了问题,
开发规则应该如下所示(没有反斜杠)
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 {} ;"
但请注意,上面的 RUN
命令在终端命令行上不起作用(为此你需要有反斜杠)
我正在尝试让我的用户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 规则更改特定文件权限,我做错了什么?
我已经解决了问题,
开发规则应该如下所示(没有反斜杠)
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 {} ;"
但请注意,上面的 RUN
命令在终端命令行上不起作用(为此你需要有反斜杠)