.png)
このファイルの値を上書きして明るさを変更しようとしています:
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