web-dev-qa-db-ja.com

ファイル/ 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を使用してスーパーユーザーに切り替えても機能します。何故ですか?

16
Kei Nivky

エラーは、Sudoがコマンド(Sudo echo 5)ですが、ファイル(> /sys/class/backlight/acpi_video0/brightness)。実際のbashシェルには書き込み権限が必要です。そのため、Sudoで失敗しますが、rootとして機能します。

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

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

これは "5"を端末にエコーすることに注意してください。これはteeコマンドの通常の副作用です。

17
mguymon

Arch wiki( link )に書かれているように、デフォルトでは、この方法で明るさを変更できるのはrootだけです。 videoグループのユーザーが明るさを変更できるようにするには、次のようなudevルールを使用できます(<vendor>をベンダーIDに置き換えます。例えば。 acpi_video0intel_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

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

Sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
2
raphael

私は長い間、VAIO VPCEGでこの問題に取り組んできました。すべてのフォーラムで言及されているすべてを行った後、私は興味深いものを見つけました:

ブートパラメータを変更した後acpi_osi=Linux acpi_backlight=vendorおよび手動で変更しようとしています/sys/class/backlight/[vendor - in my case intel_backlight]/brightness、このファイルへのアクセス許可をrootからユーザーに変更し、acpidサービスを再起動すると、明るさのキーを問題なく使用できることがわかりました。

0
user273880