1 (2015-09-25 19:44:57 отредактировано BoDun)

И снова всем привет!
Возник такой вопрос:
На нетбуке не работает управление подсветкой, решил проблему написанием трёх sh (великое написание конечно smile )
В скрипте таков код:

Консоль
#!/bin/bash
su -c 'echo -n 1000 >/sys/class/backlight/intel_backlight/brightness'

Суть скрипта:
Данное выполнение заставляет экран уменьшить яркость дисплея
Так же есть ещё два скрипта в итоге вышло так: минималная, максимальная и средняя яркость.

Всё бы хорошо, если бы не но!
Но заключается в том, что необходимо открывать терминал, вызывать необходимый скрипт и вводить пароль рута.
В начале для удобства создал ссылку в /usr/bin
Немного стало проще, но от ввода пароля решения здесь нет.

Собственно вопрос и заключается в том, что как бы эти три скрипта выполнять без рут пароля
Просто хочу повесить иконки на панель, нужно убавить - нажал убавилось, прибавить так же.
В идеале было бы удобно вообще "забиндить" горячие клавиши глобально, но это не столь необходимо.

Копал в сторону sudoers как понял, нужно туда добавить, но не разобрался...
Если пошагово, построчно кто разжует, буду очень благодарен.

Обычный юзер
Mageia 8 x86_64 Plasma

2

BoDun пишет:

Немного стало проще, но от ввода пароля решения здесь нет.

Смущает ввод пароля в терминал или ввод пароля вообще? Можно с pkexec вводить пароль в граф. интерфейсе.

А вообще, допустим, скрипт лежит как
/usr/local/bin/script

Установи sudo

Добавь в конец /etc/sudoers

твой_пользователь ALL=NOPASSWD:/usr/local/bin/script 

Будет работать без пароля как

Консоль
sudo /usr/local/bin/script

Но и это неудобно, так что лучше открыть еще пользовательский ~/.bashrc и добавить туда

alias foo="sudo /usr/local/bin/script"

Закрыть терминал, открыть, ввести foo. Если всё правильно, выполнится команда.

Fedora & GNOME

3

xxblx, вариант сработал, теперь в терминале не просит рута
Однако, не получается создать "ярлык" или из скрипта вызвать

Консоль
[user@localhost ~]$ ./bmin.sh
./bmin.sh: line 2: bmin: команда не найдена
[user@localhost ~]$ cat ./bmin.sh
#!/bin/bash
bmin
[user@localhost ~]$ cat ./.bashrc
# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

alias bmin="sudo /usr/local/bin/script_brightness/min.sh"
alias blow="sudo /usr/local/bin/script_brightness/low.sh"
alias bmax="sudo /usr/local/bin/script_brightness/max.sh"

Добавленное в /etc/sudoers
user ALL=NOPASSWD:/usr/local/bin/script_brightness/min.sh
user ALL=NOPASSWD:/usr/local/bin/script_brightness/low.sh
user ALL=NOPASSWD:/usr/local/bin/script_brightness/max.sh

Попробовал немного изменить сам скрипт смены яркости (правда изначально подумал, что смысла нет, но попробовать же надо)

Консоль
[root@localhost user]# cat /usr/local/bin/script_brightness/min.sh
#!/bin/bash
#su -c 'echo -n 1000 >/sys/class/backlight/intel_backlight/brightness'
echo -n 1000 >/sys/class/backlight/intel_backlight/brightness

Как я понял, alias нужно иначе вызывать из скрипта, вопрос как именно дабы терминал не открывать, а именно двойное нажатие и скрипт сработал - подсветка убавилась или прибавилась, в зависимости от того, какой скрипт вызываю..

xxblx⇓ пишет:

Смущает ввод пароля в терминал или ввод пароля вообще? Можно с pkexec вводить пароль в граф. интерфейсе.

Хотелось бы пароль вовсе не запрашивать при данном действии.
Иногда приходится бегать с этим нетбуком и в зависимости от того где именно (двор, дом, где-то ещё) неудобно каждые пару минут постоянно вводить пароль рута
Плюс этим нетбуком не только пользуюсь, и немного запирили с просьбой "убавь подсветку плиз" или "прибавь подсветку плиз", а объяснять бестолку...

pkexec, а разве gksu не даёт тоже самое или это разное совершенно?

Обычный юзер
Mageia 8 x86_64 Plasma

4

BoDun пишет:

Однако, не получается создать "ярлык" или из скрипта вызвать

В смысле? А как кнопку запуска делаешь?

Можно пойти другим путем

Консоль
mkdir -p ~/.local/bin
mkdir -p ~/.local/share/applications
touch ~/.local/bin/bmin_script
chmod +x ~/.local/bin/bmin_script
touch  ~/.local/share/applications/bmin.desktop

В ~/.local/bin/bmin_script кинь

#!/bin/bash

sudo /usr/local/bin/script_brightness/min.sh

в ~/.local/share/applications/bmin.desktop

[Desktop Entry]
Name=bmin
Comment=Decrease brightness
Exec=/home/user/.local/bin/bmin_script
Type=Application

В меню появится bmin.
Ну и сам ~/.local/share/applications/bmin.desktop можешь скопировать так же в удобное место, хоть на рабочий стол.

Fedora & GNOME
Спасибо сказали: BoDun1

5

BoDun пишет:

pkexec, а разве gksu не даёт тоже самое или это разное совершенно?

Про gksu я не в курсе, не пользовался.

Fedora & GNOME

6

xxblx⇓ пишет:

Можно пойти другим путем

И путь привёл меня куда я и хотел!
Благодарю smile

До этого просто пытался создать файл ярлыка через контекстное меню рабочего стола lxde и пробовал либо вызывать bmin (алиас), либо скрипт bmin.sh в котором вызывался bmin (алиас опять же)
Но на двойное нажатие результата не было никакого, а скрипт говорил мол bmin не сущесвует, хотя введя в терминале, всё робило.

Яшо раз спасибо smile
Глядишь и пригодится кому эта тема

Обычный юзер
Mageia 8 x86_64 Plasma