Можно попытаться использовать imwheel, поскольку нет никакой опции устанавливать это в X конфигурациях в настоящее время.
Так почему от этого зависит? Я думаю, что вы должны просто изменить эту строку на [115325]/home/user/bin/backlight-adjust[115326] и это сработает.
Но мне бы очень хотелось, чтобы решение Тердона об использовании псевдонима тоже сработало. Или вы можете поместить свой скрипт в [115327]/usr/bin/[115328] и он будет доступен для каждого пользователя (включая root)[114798].
В вашем конкретном случае, однако, я согласен с принятым ответом.[116194]
Это работает путем установки флага setuid, что означает, что он всегда будет выполняться как владелец файла. За подробностями обращайтесь, пожалуйста, к [115465]http://major.io/2007/02/13/chmod-and-the-mysterious-first-octet/[115466]. Я не очень много знаю о том, как это работает, я просто нашел это в гугле, основываясь на кое-чем, что я думал, что прочитал несколько лет назад.[114875].
Я не вижу причин, почему это может быть неправильно --- хотя обычно я предпочитаю, чтобы команды не спрашивали меня о чем-то, чтобы их можно было написать. Вы можете подправить /etc/sudoers
, чтобы sudo
работал без пароля.
Но... почему бы не добавить
chgrp one-of-your-groups-here /sys/class/backlight/acpi_video0/brightness
chmod g+w /sys/class/backlight/acpi_video0/brightness
в /etc/rc.local
и забыть о sudo
?
(В Ubuntu, если вы можете использовать sudo
, вы находитесь в группе sudo, поэтому вы можете использовать chgrp sudo /sys...
и быть довольным)
Не могу дать общее правило... если скрипт/программа предназначен для выполнения некоторой перенастройки (например, принтера) и вызывается обычными пользователями, то он должен быть. В противном случае я бы оставил все как есть: Если обычный пользователь запустит ее, она просто не выполнится (либо в результате явной проверки, либо просто потому, что ей не разрешено что-то делать).
Повышенные привилегии следует выдавать редко, если вообще выдавать. Переход к более высоким привилегиям - дело непростое, лучше доверить его экспертам (например, sudo(1)
).