K chybě dochází, protože sudo zvyšuje oprávnění pro příkaz (sudo echo 5 ), ale ne přesměrování k zápisu souboru (> /sys/class/backlight/acpi_video0/brightness ). Skutečný bash shell potřebuje oprávnění k zápisu, což je důvod, proč selhává se sudo, ale funguje jako root.
Můžete to obejít spuštěním tee příkaz jako root pro zápis do souboru:
echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
Všimněte si, že to také odešle "5" do vašeho terminálu. Toto je normální vedlejší účinek tee příkaz.
Jak je napsáno na Arch wiki (odkaz), ve výchozím nastavení pouze root lze touto metodou změnit jas. Povolit uživatelům v video skupina pro změnu jasu, udev lze použít pravidlo, jako je následující (nahraďte <vendor> s vaším ID dodavatele. Např. 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"
Poté musíte přidat svého uživatele do video skupina.
usermod -aG video <user>
Poté by to mělo fungovat:
echo 5 > /sys/class/backlight/<vendor>/brightness
Pokud nechcete, aby se opakovalo 5, funguje to také:
sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'