13

Я пытаюсь изменить яркость, перезаписав значение в этом файле:

sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
-bash: /sys/class/backlight/acpi_video0/brightness: Permission denied

Это не работает даже при использовании sudo. Однако, если я переключаюсь на суперпользователя с su, это работает. Это почему?

5 ответов5

14

Ошибка возникает из-за того, что sudo повышает разрешения для команды (sudo echo 5), но не перенаправляет на запись файла (> /sys/class/backlight/acpi_video0/brightness). Фактическая оболочка bash требует разрешения на запись, поэтому она не работает с sudo, но работает как root.

Вы можете обойти это, запустив команду tee от имени root для записи в файл:

echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

Обратите внимание, что это также будет отображать "5" для вашего терминала. Это нормальный побочный эффект команды tee .

2

Если вы не хотите, чтобы 5 отображалось, это также работает:

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

Я уже давно борюсь с этой проблемой на своем VAIO VPCEG. Сделав все упомянутое на каждом форуме, я нашел что-то интересное:

После изменения параметра загрузки acpi_osi=Linux acpi_backlight=vendor и попытки вручную изменить /sys/class/backlight/[vendor - in my case intel_backlight]/brightness , я понял, что изменил разрешение на этот файл с root на моего пользователя и перезапустил acpid сервис, это позволило бы мне использовать клавиши яркости без нареканий.

0

Как написано в Arch wiki (ссылка), по умолчанию только root может изменять яркость этим методом. Чтобы разрешить пользователям в группе video изменять яркость, можно использовать правило udev например следующее:

% cat /etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="acpi_video0", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="acpi_video0", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

Затем вам нужно добавить своего пользователя в группу video . После этого это должно работать:

echo 5 > /sys/class/backlight/acpi_video0/brightness
-1

нижеприведенные решения прекрасно работают для меня ..

я публикую его как ответ, чтобы другие могли получить помощь:

изменить разрешение:

sudo chmod a+rw /sys/class/backlight/intel_backlight/brightness

Теперь измените яркость:

echo 400 > /sys/class/backlight/intel_backlight/brightness

в вашем случае это будет: /sys/class/backlight/acpi_video0/brightness

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .