/sys 檔案的 udev 不起作用

/sys 檔案的 udev 不起作用

我正在嘗試設定組屬性

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參考資料 中的所有選項。

相關內容