ファイル /sys/class/backlight/acpi_video0/brightness に書き込めません (ubuntu)

ファイル /sys/class/backlight/acpi_video0/brightness に書き込めません (ubuntu)

このファイルの値を上書きして明るさを変更しようとしています:

sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
-bash: /sys/class/backlight/acpi_video0/brightness: Permission denied

sudo を使用しても機能しません。ただし、su を使用してスーパーユーザーに切り替えると機能します。なぜでしょうか?

答え1

このエラーは、sudo がコマンド ( sudo echo 5) の権限を昇格しますが、ファイルを書き込むためのリダイレクト ( ) の権限を昇格しない> /sys/class/backlight/acpi_video0/brightnessために発生します。実際の bash シェルには書き込み権限が必要なので、sudo では失敗しますが、root では機能します。

この問題を回避するには、次のコマンドを root として実行してteeファイルに書き込みます。

echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

これによって、ターミナルに「5」がエコーされることに注意してください。これは、コマンドの通常の副作用ですtee

答え2

Arch wikiに書かれているように(リンク) では、デフォルトでは、rootこの方法で明るさを変更できるのは のみです。グループ内のユーザーがvideo明るさを変更できるようにするには、udev次のようなルールを使用できます ( を<vendor>ベンダー ID に置き換えます。例acpi_video0: intel_backlight)。

% cat /etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

次に、ユーザーをvideoグループに追加する必要があります。

usermod -aG video <user>

その後は、次のように動作するはずです:

echo 5 > /sys/class/backlight/<vendor>/brightness

答え3

5 をエコーし​​たくない場合は、これも機能します:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'

答え4

以下の解決策は私にとってはうまく機能します。

他の人が助けを得られるよう、回答として投稿します。

権限を変更します:

sudo chmod a+rw /sys/class/backlight/intel_backlight/brightness

明るさを変更します:

echo 400 > /sys/class/backlight/intel_backlight/brightness

あなたの場合は次のようになります:/sys/class/backlight/acpi_video0/brightness

関連情報