L'erreur se produit car sudo élève les autorisations pour la commande (sudo echo 5
) mais pas la redirection pour écrire le fichier (> /sys/class/backlight/acpi_video0/brightness
). Le shell bash réel a besoin d'une autorisation pour écrire, c'est pourquoi il échoue avec sudo mais fonctionne en tant que root.
Vous pouvez contourner ce problème en exécutant le tee
commande en tant que root pour écrire dans le fichier :
echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
Notez que cela fera également écho à "5" sur votre terminal. Ceci est un effet secondaire normal du tee
commande.
Comme écrit dans le wiki Arch (lien), par défaut, seulement root
peut changer la luminosité par cette méthode. Pour autoriser les utilisateurs dans le video
groupe pour changer la luminosité, un udev
règle telle que la suivante peut être utilisée (remplacer le <vendor>
avec votre identifiant fournisseur. Par exemple. 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"
Ensuite, vous devez ajouter votre utilisateur au video
groupe.
usermod -aG video <user>
Après cela, cela devrait fonctionner :
echo 5 > /sys/class/backlight/<vendor>/brightness
Si vous ne vouliez pas que 5 soit répercuté, cela fonctionne également :
sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'