LinuxForum.Fans
Тема

Запуск приложения через пользовательскую кнопку

Автор: Eser 26 сообщений 6875 просмотров
#154105

Debian squeeze
Народ подскажите.
Итак работаю я не под рутом.
Мне нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.
Это нужно права на комманду sudo для обычного пользователя?
Или же права на apache2. Или же есть какой то готовый набор прав который можно выбрать в настройках пользователя?
Собственно не могли бы пояснить логику действий?

#154135

[console]gksu /etc/init.d/apache2 restart > /dev/null[/console]
так попробуй

#154139

Можно настроить sudo на беспарольный запуск нужного вам скрипта.

#154228

Спасибо попробую

#154285

gksu /etc/init.d/apache2 restart > /dev/null не катит
Остаеться 2ой вариант.
Полазил по инету понял что есть файл sudoers, где так сказать лежат настройки sudo.
Нашел в интернете
Чтобы разрешить пользователю user запускать программы pppd и xcdroast, добавим строку в sudoers:
user localhost=NOPASSWD:/usr/sbin/pppd,/usr/bin/xcdroast

Вопрос №1 Добавлять строки можно в любое место файла? Или же нет?
Вопрос №2 Как посмотреть где лежит apache2?
Заранее извиняюсь что вопросы могут быть дурацкие, но на Debian тока пересел с винды так что много мелочей-не поняток про которые в мануалах не пишут.

#154286
Eser написал:
Вопрос №1 Добавлять строки можно в любое место файла? Или же нет?

Для настройки sudo настойчиво рекомендую пользоваться командой visudo. Несмотря на «страшное» название, она использует ваш редактор по-умолчанию. Использование этой команды гарантирует вам правильную, точнее, синтаксически правильную конфигурацию для sudo.

Eser написал:
user localhost=NOPASSWD:/usr/sbin/pppd,/usr/bin/xcdroast

Пробелы, IMHO, надо бы. Например, так:

text
user localhost = NOPASSWD: /usr/sbin/pppd,/usr/bin/xcdroast

P.S. Строку удобнее добавлять в конец файла.

#154287

А как узнать где лежит сама прога apache2?
В винде правой кнопкой по ярлыку.

#154290
Eser написал:
А как узнать где лежит сама прога apache2?

locate apache2
должно быть что то типа /usr/bin

если не найдет, то из под рута updatedb

#154291
iSun написал:
locate apache2
должно быть что то типа /usr/bin

если не найдет, то из под рута updatedb

Я, к сожалению, не знаю команд пакетного менеджера в Debian, должна быть команда, позволяющая посмотреть содержимое установленного пакета.

#154295
Lupo Alberto написал:
должна быть команда, позволяющая посмотреть содержимое установленного пакета.

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

#154319

В папке bin ив папке user/bin пустота не apache2 не httpd нет.
Зато есть ссылка apache2 в папке user/sbin, ссылаеться он на /usr/lib/apache2/mpm-prefork/apache2
Щас попробую.

#154320

OMG!

gksu /etc/init.d/apache2 restart
или
gksudo /etc/init.d/apache2 restart
(надеюсь, о разнице догадываетесь)

И фсе. Только не забудте проверить/установить пакет gksu, а также проверить/добавить юзера к группе www-data; а в случае с gksudo еще и к группе sudo, также, емнип, adm.

Пароль вводить надо, но думаю это не страшно. Просто sudo низзя потому, что пароль спрашивает в своей консоли, которую вы не видите и в которую попасть не можете.

#154345

gksu установлен.
GKsu - это интерфейс на основе GTK+ к программе su. Он поддерживает начальные командные интерпретаторы (login shells) и сохраняет переменные среды. Он удобен для запуска графических программ от имени другого пользователя. В будущем предполагается поддерживать оболочку и для sudo. Это понятно.
Про gksudo в инете не нашел.
Но при вводе в консоле что gksudo gksu выводит на экран программу(запуск программы от суперпользователя). Или тут обращать внимание на вторую часть слова:
Команда su (изменить пользователя - substitute user) позволяет изменить "владельца" текущего сеанса без необходимости завершать сеанс и открывать новый.
А sudo запуск от имени пользователя root (как run as в винде)

Я правильно понял?
Если да то не понимаю su-позволяет изменить "владельца" текущего сеанса. Т.е sudo сеанс не изменяет просто запускает программу от имени root. Не понимаю что дает изменение сеанса при использовании su?
Про www-data в инете не нашел. Что это за группа? Где найти описание?
Так же "емнип, adm"-как понять.
Я понимаю что может назойлив. Но очень хочется понимания процесса(логики). Если изучать Linux то изучать.

#154410

gksu спрашивает пароль рута, и может работать у любого юзера.
gksudo работает только у админов и/или (не знаю точно) у юзеров в группе sudo, спрашивет пароль этого юзера (/админа).
Но по сути оба выполняют роль как sudo в консоли.

Разницу sudo и su ты правильно понял.

Eser написал:
Про www-data в инете не нашел. Что это за группа? Где найти описание?
Это веб-сервер. Админ веб-сервера также должен быть в этой группе. Именно этой группе надо давать права на исполнение, чтение и запись файлов сервера.

Eser написал:
Так же "емнип, adm"-как понять.
Если Мне Не Изменяет Память, то и к группе adm [добавить юзера] т. е. сделать его админом.
#154423
moscwich написал:
OMG!

??? минус вам. ибо ТС хочет

Eser написал:
нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.

какое нафиг гксу?!

Eser написал:
А sudo запуск от имени пользователя root (как run as в винде)
Я правильно понял?

не совсем. не обязательно от рута. но в целом верно.

1) редактирование
[console]# EDITOR=mcedit visudo[/console]
2) строчка

text
юзер_который_запускает имя_компьютера=(юзер_ОТ_ИМЕНИ_которого_запускают) NOPASSWD: /usr/bin/команда
moscwich написал:
а также проверить/добавить юзера к группе www-data; а в случае с gksudo еще и к группе sudo, также, емнип, adm.

БРЕД. юзер www-data и так уже там.

#154424
Eser написал:
А как узнать где лежит сама прога apache2?
В винде правой кнопкой по ярлыку.

[console]# which httpd
/usr/sbin/httpd
[/console]
почему httpd? а так апач называется. во многих дистрах можно посмотреть в /etc/init.d/программа - это скрипт, который контролирует данный сервер.

ЗЫЖ забыл сказать - файл для sudo ДОЛЖЕН КОНЧАТСЯ ПУСТОЙ СТРОКОЙ. как и все конфиги.
(vi & vim сами подставляют. а mc нет)

#154468
drBatty написал:
ТС хочет
[quote=Eser]нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.

какое нафиг гксу?!
[/quote]Я и отвечаю, что надо добавить юзера к группе sudo (это и даст необходимые права) и использовать gksudo (т. к. с sudo по-хорошему не получится, пароль будет запрашиваться хз где) или же просто использовать gksu. Перечитайте.

drBatty написал:
минус вам.

кармодрочер

#154476

Господа спасибо за ответы сделал так(тока так получилось):
Удалил из sudoers свои записи.
В свойствах кнопки прописал вот такую команду gksu /etc/init.d/apache2 restart и все заработало.
Если gksu то добавлять моего пользователя в другие группы не надо.(пробовал разные но на результат не влияет)
Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.
Еще раз спасибо.

#154484

Eser написал:
Если gksu то добавлять моего пользователя в другие группы не надо.(пробовал разные но на результат не влияет)
Да, никто вроде не говорил иначе. В другие группы добавлять надо для gksudo.

Eser написал:
Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.
Да, это я тоже упомянул.
#154489
moscwich написал:
Я и отвечаю, что надо добавить юзера к группе sudo (это и даст необходимые права)

идиотизм - давать НЕ НУЖНЫЕ права тем, кто в них не нуждается.

moscwich написал:
и использовать gksudo (т. к. с sudo по-хорошему не получится, пароль будет запрашиваться хз где)

вы идиот? как оно может запрашивать пароль, если там ясно написано: NOPASSWD, ещё и БОЛЬШИМИ буквами, чтоб и вы в т.ч. видели!

moscwich написал:
или же просто использовать gksu. Перечитайте.

на кой хрен ваще нужно GTK на сервере? там и иксов-то в подавляющем числе случаев нет... Эх... что читать ваш бред, оторванный от реальности?

Eser написал:
Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.

да... ну пишите дальше.
вы сами-то поняли, ЧТО вы сделали??

Войдите или зарегистрируйтесь, чтобы ответить.