/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、または再起動のいずれを実行しても、ルールは適用されません。何が間違っているのでしょうか?

答え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すべてのオプションについてはを参照してください。

関連情報