15

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?

migrated from stackoverflow.com Oct 7 '12 at 20:45

This question came from our site for professional and enthusiast programmers.

  • This action is restricted to sudo users only. I found an answer in this comment: 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 Volodko Apr 3 at 10:58
15

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.

  • Credit goes to @duskwuff for the clever tee solution – mguymon Sep 20 '12 at 0:45
  • 5
    I can't take credit for coming up with that -- it's a bit of UNIX folklore I picked up from who-knows-where. – duskwuff Sep 20 '12 at 2:15
  • 1
    not working for me with /sys/class/drm/card0/device/pp_sclk_od cannot change the value – alexela Sep 15 '17 at 20:25
2

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

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

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. After that this should work:

echo 5 > /sys/class/backlight/<vendor>/brightness
  • 1
    This method works for me, after replacing acpi_video0 by intel_backlight. – Mehdi May 5 at 10:06
  • 1
    Thx for your feedback. I've updated the answer. – Manuel Schmitzberger May 5 at 11:27
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.

-1

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 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy