[Решено] Запуск скрипта через ярлык с правами суперпользователя

Автор noname, 28 марта 2013, 17:05:02

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

noname

Добрый день.Cделал несколько кнопок на рабочем столе для ручной регулировки  куллера,работает через gksu, запись идет в /sys/class/hwmon/hwmon1/pwm1
/sys/class/hwmon/hwmon1/pwm1_enable  командой  echo. как для пользователя организовать все это дело без ввода  пароля, уж больно лениво вводить?
Собственно  кнопка:
[Desktop Entry]
Name=70pwm
Exec=gksu /home/"user"/FAN/fanctrl_70pwm
Icon=/home/"user"/FAN/70pwm.png
Categories=GTK;GNOME;System;Filesystem;
И файл
echo "1" > /sys/class/hwmon/hwmon1/pwm1_enable
echo "70" > /sys/class/hwmon/hwmon1/pwm1
Добавлял в /etc/sudoers.d   "user" ALL=NOPASSWD:/home/"user"/FAN/fanctrl_70pwm
не помогаеть.Дело в sudo?

* тему поправил, чтобы смысл совпадал с обсуждением, qupl
Gentoo x86_64 AMD E-350 Openbox 3.5.2

qupl

Здесь про настройку sudo. Сам скрипт работает? Если нет, то приведите его полный текст.

noname

да собственно это файл из двух комманд "эхо":
echo "1" > /sys/class/hwmon/hwmon1/pwm1_enable вкл ручное управление
echo "70" > /sys/class/hwmon/hwmon1/pwm1 уст значение пвм
В судо как никрутил ничего.Прописывал в /etc/sudoers cам файл тоже нето.Получается надо пользователю разрешить полностью запись в каталог /sys/,а мне надо всего несколько комманд.Спасибо за ответ.
Gentoo x86_64 AMD E-350 Openbox 3.5.2

qupl

noname, еще как минимум должна быть строка #!/bin/sh

noname

#4
Цитата: qupl от 14 мая 2013, 20:45:02
noname, еще как минимум должна быть строка #!/bin/sh
добавил #!/bin/sh,прописал в судоерс правило для себя юзера и правило FAN куда записал эти пять скриптов.
Заработало только из консоли через судо раньше только  от root выполнялось.
С ярлыка запускается если в файле настроек .desktop в строке комманды Exec указывать gksu,от пользователя не хочет
root ~ # cat /etc/sudoers
Открыть содержимое (спойлер)

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults   env_reset
Defaults   mail_badpass
Defaults   secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification
User_Alias      ADMIN = bublik

# User alias specification

# Cmnd alias specification
Cmnd_Alias       FAN = /home/bublik/my_scripts/FAN/fanctrl_70pwm, /home/bublik/my_scripts/FAN/fanctrl_100pwm, /home/bublik/my_scripts/FAN/fanctrl_150pwm, /home/bublik/my_scripts/FAN/fanctrl_245pwm, /home/bublik/my_scripts/FAN/fanctrl_auto

Cmnd_Alias      PKGMGMT = /usr/bin/dpkg, /usr/bin/apt-get, /usr/bin/aptitude

Cmnd_Alias      SHUTDOWN = /sbin/shutdown, /sbin/reboot, /sbin/halt

# Users listed above (ADMIN) can run FAN  package managers and reboot the system.
ADMIN ALL = FAN, PKGMGMT, SHUTDOWN


# User privilege specification
root   ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
[свернуть]
Gentoo x86_64 AMD E-350 Openbox 3.5.2

agentgoblin

#5
Цитата: noname от 15 мая 2013, 22:00:25С ярлыка запускается если в файле настроек .desktop в строке комманды Exec указывать gksu,от пользователя не хочет
Всё правильно. sudo позволяет на время получить права root и выполнить запись туда, куда обычному пользователю доступ запрещён. Если вызывать команду без sudo, то она выполняется от имени обычного пользователя. Так что пробуй писать команду запуска или так (в секцию Exec=, если я правильно понял синтаксис .desktop-файлов):

Exec=sudo <имя_скрипта>

или так:

Exec=xterm -e sudo <имя_скрипта>

Во втором случае на экране может мигать окно терминала на момент выполения команды. Т.е. открывается терминал, выполняется команда, терминал закрывается. Но это на крайний случай, если первый вариант не сработает.

Сообщение объединено: 16 мая 2013, 17:31:06

И кстати - ты же в .desktop-файле полный путь к скрипту прописываешь?

Т.е. что-то вроде:

Exec=/home/bublik/my_scripts/FAN/fanctrl_70pwm

noname

#6
Цитата: agentgoblin от 16 мая 2013, 17:20:03И кстати - ты же в .desktop-файле полный путь к скрипту прописываешь?
да Exec=gksu /home/bublik/my_scripts/FAN/fanctrl_70pwm
оба варианта попробывал,и там и там на полсекунды выскакивает окно и дальше ничего

Сообщение объединено: 16 мая 2013, 17:44:19

Да наверно тут ничего не выйдет, ведь если что-то разрешаешь В sudoers,значит оно должно работать через sudo-->pswd-->cmd
Gentoo x86_64 AMD E-350 Openbox 3.5.2

agentgoblin

#7
А ты при запуске разных скриптов после этого выскакивающего окна смотрел в /sys/class/hwmon/hwmon1/pwm1 - значения меняются?

Сообщение объединено: 16 мая 2013, 17:50:48

nopasswd надо!!! В sudoers надо правильно сказать, чтобы без запроса пароля пускал команды!


Пример - у меня пользователи в группе plugdev могут монтировать блочные устройства (флэшки, грубо говоря) без запроса пароля:

Cmnd_Alias MOUNTS = /bin/mount /dev/sd[d-z][1-9], /bin/umount /dev/sd[d-z][1-9]
%plugdev ALL=NOPASSWD: MOUNTS


Надо аналогичным образом эту группу прописать для своего пользователя.

Сообщение объединено: 16 мая 2013, 17:51:21

Это кусок из моего /etc/sudoers, если что.

noname

У меня в conky показывает значения вентилятора,сразу видно :)
Gentoo x86_64 AMD E-350 Openbox 3.5.2

agentgoblin

Понятно. Попробуй прописать команды для пользователя как nopasswd в sudoers.

Cmnd_Alias       FAN = /home/bublik/my_scripts/FAN/fanctrl_70pwm, /home/bublik/my_scripts/FAN/fanctrl_100pwm, /home/bublik/my_scripts/FAN/fanctrl_150pwm, /home/bublik/my_scripts/FAN/fanctrl_245pwm, /home/bublik/my_scripts/FAN/fanctrl_auto

ADMIN ALL=NOPASSWD: FAN, PASSWD: PKGMGMT, SHUTDOWN


Я так понимаю - ADMIN (именно большими буквами) - это имя твоего пользователя?

noname

#10
Цитата: agentgoblin от 16 мая 2013, 17:55:28Я так понимаю - ADMIN (именно большими буквами) - это имя твоего пользователя?
Нее ADMIN это User_Alias :) имя bublik

Сообщение объединено: 16 мая 2013, 18:21:49

тоже не вышло также терминал могнет и все
Gentoo x86_64 AMD E-350 Openbox 3.5.2

agentgoblin

Он хоть в консоли теперь работает без запроса пароля?

noname

Цитата: agentgoblin от 16 мая 2013, 19:39:40
Он хоть в консоли теперь работает без запроса пароля?
нет не работает так, пермишин денид.Делал по ссылке qupl которая выше, я определенно делаю что-то нетак.
Gentoo x86_64 AMD E-350 Openbox 3.5.2

qupl

noname,  по шагам 1) от рута скрипт работает? 2) в терминале через sudo работает?

noname

Цитата: qupl от 16 мая 2013, 20:03:40noname,  по шагам 1) от рута скрипт работает? 2) в терминале через sudo работает?
1.да
2.да
Gentoo x86_64 AMD E-350 Openbox 3.5.2