Can't write to file /sys/class/backlight/acpi_video0/brightness (ubuntu)
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
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.
% 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
usermod -aG video <user>
After that this should work:
echo 5 > /sys/class/backlight/<vendor>/brightness
If you didn't want 5 to be echoed this also works:
sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'