24

I am trying to change the brightness by overwriting the value on this file:

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

It doesn't work even when using sudo. However if I switch to super-user with su, it works. Why is that?

  • This action is restricted to sudo users only. I found an answer [in this comment](https://askubuntu.com/questions/149054/how-to-change-lcd-brightness-from-command-line-or-via-script#comment1285547_469040): `The reason that this is set at su permissions is that a virus could conceivably make your screen dim and go bright at incredible speed ultimately damaging your hardware display. In the 90's I encountered a virus that would adjust the screen refresh Hertz so rapidly that your monitor would fry.` – Alexey Vol Apr 03 '19 at 10:58

6 Answers6

23

The error happens because sudo elevates permissions for the command (sudo echo 5) but not the redirection to write the file (> /sys/class/backlight/acpi_video0/brightness). The actual bash shell needs permission to write, which is why it fails with sudo but works as root.

You can work around this by running the tee command as root to write to the file:

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

Note that this will also echo "5" to your terminal. This is a normal side effect of the tee command.

mguymon
  • 346
  • 2
  • 5
22

As written in the Arch wiki (link), by default, only root can change the brightness by this method. To allow users in the video group to change the brightness, a udev rule such as the following can be used (replace the <vendor> with your vendor id. E.g. 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"

Then you need to add your user to the video group.

usermod -aG video <user>

After that this should work:

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

If you didn't want 5 to be echoed this also works:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
raphael
  • 21
  • 1
0

The solution with tee is much better suited for scripting and such, but I found that simply editing the file with for example vim run using sudo works as well and is easier for me when I'm just doing it manually.

Isti115
  • 994
  • 10
  • 11
0

I've been struggling with this problem on my VAIO VPCEG for quite a time. After doing everything mentioned in every forum I found something interesting:

After changing the boot parameter acpi_osi=Linux acpi_backlight=vendor and trying to manually change /sys/class/backlight/[vendor - in my case intel_backlight]/brightness, I realized that changing permission to this file from root to my user and restarting acpid service, this would allow me to use brightness keys flawlessly.

0

the below solutions works fine for me..

i am posting it as answer so that others might get help:

change the permission:

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

now change brightness:

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

in your case it would be: /sys/class/backlight/acpi_video0/brightness

  • 1
    Welcome to Super User! Please don't add "thanks" as answers. Invest some time in the site and you will gain sufficient [privileges](http://superuser.com/privileges) to upvote answers you like, which is the Super User way of saying thank you. – DavidPostill Jun 29 '15 at 13:51
  • In addition you didn't really answer the question, which was "Why is that?" – DavidPostill Jun 29 '15 at 13:52
  • thanks a lot.. for the information and really sorry.. just because of me.. you wasted your important time for guiding me..i will make sure this doesn't happen again – noobdeveloper99 Jun 29 '15 at 15:49
  • It is not good practice to allow everyone to read and write a system config file like that. – lindhe Dec 18 '15 at 15:15
  • I have some scenarios, where the screen starts functioning, yet the backlight value is still 0, – ransh Nov 26 '16 at 21:22
  • Also you have to redo this after every reboot – TheEagle Jul 31 '21 at 21:11