首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >udev不想运行chgrp和chmod

udev不想运行chgrp和chmod
EN

Unix & Linux用户
提问于 2018-08-01 14:56:44
回答 2查看 1.1K关注 0票数 1

我想通过/sys/class/backlight/radeon_bl0/brightness文件改变显示器的亮度。但是该文件具有-rw-r--r--.权限,因此只有root才能写入它。这篇文章说,我可以配置一个udev规则来更改权限。它不起作用。为了配合我的电脑,我稍微修改了一下规则。我的石墨卡是radeon_b10,而不是acpi_video0

代码语言:javascript
复制
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chmod g+w /sys/class/backlight/%k/brightness"

我什么都试过了。使用$ udevadm monitor监视规则,并使用# udevadm trigger --action=add /sys/class/backlight/radeon_bl0触发规则。规则被触发,但是文件/sys/class/backlight/%k/brightness仍然是:

代码语言:javascript
复制
-rw-r--r--. 1 root root 4096 Aug  1 16:09 brightness

(来自$ ll -a /sys/class/backlight/radeon_bl0/的输出)

为什么udev不执行RUN语句?

有关我系统的信息:

代码语言:javascript
复制
[marian@bagr ~]$ uname -a
Linux bagr 4.17.9-200.fc28.x86_64 #1 SMP Mon Jul 23 21:41:29 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[marian@bagr ~]$ ll -a /sys/class/backlight/radeon_bl0/
total 0
drwxr-xr-x. 3 root root    0 Aug  1  2018 .
drwxr-xr-x. 6 root root    0 Aug  1  2018 ..
-r--r--r--. 1 root root 4096 Aug  1 16:09 actual_brightness
-rw-r--r--. 1 root root 4096 Aug  1 16:09 bl_power
-rw-r--r--. 1 root root 4096 Aug  1 16:09 brightness
lrwxrwxrwx. 1 root root    0 Aug  1 16:09 device -> ../../card0-eDP-1
-r--r--r--. 1 root root 4096 Aug  1 16:09 max_brightness
drwxr-xr-x. 2 root root    0 Aug  1 16:09 power
lrwxrwxrwx. 1 root root    0 Aug  1  2018 subsystem -> ../../../../../../../class/backlight
-r--r--r--. 1 root root 4096 Aug  1 16:09 type
-rw-r--r--. 1 root root 4096 Aug  1 16:09 uevent
[marian@bagr ~]$ udevadm info -q all -a /sys/class/backlight/radeon_bl0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:01.0/drm/card0/card0-eDP-1/radeon_bl0':
    KERNEL=="radeon_bl0"
    SUBSYSTEM=="backlight"
    DRIVER==""
    ATTR{actual_brightness}=="30"
    ATTR{bl_power}=="0"
    ATTR{brightness}=="30"
    ATTR{max_brightness}=="255"
    ATTR{type}=="raw"

  looking at parent device '/devices/pci0000:00/0000:00:01.0/drm/card0/card0-eDP-1':
    KERNELS=="card0-eDP-1"
    SUBSYSTEMS=="drm"
    DRIVERS==""
    ATTRS{dpms}=="On"
    ATTRS{edid}==""
    ATTRS{enabled}=="enabled"
    ATTRS{status}=="connected"

  looking at parent device '/devices/pci0000:00/0000:00:01.0/drm/card0':
    KERNELS=="card0"
    SUBSYSTEMS=="drm"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:01.0':
    KERNELS=="0000:00:01.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="radeon"
    ATTRS{ari_enabled}=="0"
    ATTRS{boot_vga}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x030000"
    ATTRS{consistent_dma_mask_bits}=="40"
    ATTRS{current_link_speed}=="Unknown speed"
    ATTRS{current_link_width}=="0"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x9850"
    ATTRS{dma_mask_bits}=="40"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="35"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="f"
    ATTRS{max_link_speed}=="Unknown speed"
    ATTRS{max_link_width}=="255"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{power_dpm_force_performance_level}=="auto"
    ATTRS{power_dpm_state}=="balanced"
    ATTRS{power_method}=="dpm"
    ATTRS{power_profile}=="default"
    ATTRS{revision}=="0x40"
    ATTRS{subsystem_device}=="0x81f5"
    ATTRS{subsystem_vendor}=="0x103c"
    ATTRS{vendor}=="0x1002"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
EN

回答 2

Unix & Linux用户

发布于 2018-08-01 22:43:51

一个可能的原因是要更改的文件还不存在。

运行一个脚本,而不是chown和chmod,它可以检查目标是否存在,并可以将信息写入日志文件。

票数 0
EN

Unix & Linux用户

发布于 2019-01-12 12:55:15

我使用了change操作,而不是add,一切都正常运行:

代码语言:javascript
复制
ACTION=="change", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="change", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chmod g+w /sys/class/backlight/%k/brightness"
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/459874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档