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'