LINUX.ORG.RU

Вызов привилегированной функции из функции, добавленной в sudoers.


0

2

Написал костыль, позволяющий использовать неработавшие ранее клавиши изменения яркости. Устанавливаю в скрипте яркость так: setpci -s 00:02.1 f4.b=FF (FF - макс. яркость).

Скрипт (/usr/bin/rbrightness) занес в sudoers:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults	env_reset

# Host alias specification

Host_Alias LOCAL = 127.0.0.1

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL) ALL

ALL LOCAL = NOPASSWD: /usr/bin/rbrightness

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Однако, скрипт выполняется (не из под рута) с ошибкой - не может вызвать setpci - недостаточно прав.

Вопрос: как лучше всего это пофиксить?


Причём тут функции? С Host_Alias LOCAL = 127.0.0.1 и у меня не работает. Работает, если прописать имя хоста или ALL.

anon_666 ()
Ответ на: комментарий от anon_666

Sorry, у меня каша в башке

Хотел написать следующее: добавил скрипт в sudoers, в скрипте вызывается прога.
В итоге скрипт выполняется от рута и не рута, но прога выполняется, только если скрипт запущен от рута.

RR42 ()

Решено!

Надо было дописать sudo к setpci в скрипте...

RR42 ()
Ответ на: Решено! от RR42

Фак мой мозг

Это помогает только если в консоли введен пароль после sudo... черт.

Проблема решилась чтением манов и частично методом перебора.

В sudoers после (если написать перед - не работает)

%admin ALL=(ALL) ALL
написал
юзернейм ALL=NOPASSWD: /usr/bin/rbrightness

Поставил xbindkeys.

Выполнил

xbindkeys
Далее он мне сказал, что нужно ввести это:
xbindkeys --defaults > /home/юзернейм/.xbindkeysrc

В файле /home/юзернейм/.xbindkeysrc дописал:

"sudo rbrightness --inc 10"
  XF86MonBrightnessUp

"sudo rbrightness --dec 10"
  XF86MonBrightnessDown

Клавиши работают.

RR42 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.