Debian squeeze
Народ подскажите.
Итак работаю я не под рутом.
Мне нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.
Это нужно права на комманду sudo для обычного пользователя?
Или же права на apache2. Или же есть какой то готовый набор прав который можно выбрать в настройках пользователя?
Собственно не могли бы пояснить логику действий?
Запуск приложения через пользовательскую кнопку
[console]gksu /etc/init.d/apache2 restart > /dev/null[/console]
так попробуй
Можно настроить sudo на беспарольный запуск нужного вам скрипта.
Спасибо попробую
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 тока пересел с винды так что много мелочей-не поняток про которые в мануалах не пишут.
Вопрос №1 Добавлять строки можно в любое место файла? Или же нет?
Для настройки sudo настойчиво рекомендую пользоваться командой visudo. Несмотря на «страшное» название, она использует ваш редактор по-умолчанию. Использование этой команды гарантирует вам правильную, точнее, синтаксически правильную конфигурацию для sudo.
user localhost=NOPASSWD:/usr/sbin/pppd,/usr/bin/xcdroast
Пробелы, IMHO, надо бы. Например, так:
user localhost = NOPASSWD: /usr/sbin/pppd,/usr/bin/xcdroastP.S. Строку удобнее добавлять в конец файла.
А как узнать где лежит сама прога apache2?
В винде правой кнопкой по ярлыку.
А как узнать где лежит сама прога apache2?
locate apache2
должно быть что то типа /usr/bin
если не найдет, то из под рута updatedb
locate apache2
должно быть что то типа /usr/bin
если не найдет, то из под рута updatedb
Я, к сожалению, не знаю команд пакетного менеджера в Debian, должна быть команда, позволяющая посмотреть содержимое установленного пакета.
должна быть команда, позволяющая посмотреть содержимое установленного пакета.
может быть, но я не заморачивался. мне этого хватает
в любом случае должно указывать на подкаталог bin(если нужен исполняемый файл)
В папке bin ив папке user/bin пустота не apache2 не httpd нет.
Зато есть ссылка apache2 в папке user/sbin, ссылаеться он на /usr/lib/apache2/mpm-prefork/apache2
Щас попробую.
OMG!
gksu /etc/init.d/apache2 restart
или
gksudo /etc/init.d/apache2 restart
(надеюсь, о разнице догадываетесь)
И фсе. Только не забудте проверить/установить пакет gksu, а также проверить/добавить юзера к группе www-data; а в случае с gksudo еще и к группе sudo, также, емнип, adm.
Пароль вводить надо, но думаю это не страшно. Просто sudo низзя потому, что пароль спрашивает в своей консоли, которую вы не видите и в которую попасть не можете.
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 то изучать.
gksu спрашивает пароль рута, и может работать у любого юзера.
gksudo работает только у админов и/или (не знаю точно) у юзеров в группе sudo, спрашивет пароль этого юзера (/админа).
Но по сути оба выполняют роль как sudo в консоли.
Разницу sudo и su ты правильно понял.
Это веб-сервер. Админ веб-сервера также должен быть в этой группе. Именно этой группе надо давать права на исполнение, чтение и запись файлов сервера.Про www-data в инете не нашел. Что это за группа? Где найти описание?
Если Мне Не Изменяет Память, то и к группе adm [добавить юзера] т. е. сделать его админом.Так же "емнип, adm"-как понять.
OMG!
??? минус вам. ибо ТС хочет
нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.
какое нафиг гксу?!
А sudo запуск от имени пользователя root (как run as в винде)
Я правильно понял?
не совсем. не обязательно от рута. но в целом верно.
1) редактирование
[console]# EDITOR=mcedit visudo[/console]
2) строчка
юзер_который_запускает имя_компьютера=(юзер_ОТ_ИМЕНИ_которого_запускают) NOPASSWD: /usr/bin/командаа также проверить/добавить юзера к группе www-data; а в случае с gksudo еще и к группе sudo, также, емнип, adm.
БРЕД. юзер www-data и так уже там.
А как узнать где лежит сама прога apache2?
В винде правой кнопкой по ярлыку.
[console]# which httpd
/usr/sbin/httpd
[/console]
почему httpd? а так апач называется. во многих дистрах можно посмотреть в /etc/init.d/программа - это скрипт, который контролирует данный сервер.
ЗЫЖ забыл сказать - файл для sudo ДОЛЖЕН КОНЧАТСЯ ПУСТОЙ СТРОКОЙ. как и все конфиги.
(vi & vim сами подставляют. а mc нет)
ТС хочет
[quote=Eser]нужно сделать пользовательскую кнопку перезагрузки apache.
Через консоль так соответственно sudo/etc/init.d/apache2 restart.
Соответственно в настройках кнопки указываю эту команду, но кнопка не отрабатывает т.к нет прав.
Вопрос вот в чем, как дать мне права.
какое нафиг гксу?!
[/quote]Я и отвечаю, что надо добавить юзера к группе sudo (это и даст необходимые права) и использовать gksudo (т. к. с sudo по-хорошему не получится, пароль будет запрашиваться хз где) или же просто использовать gksu. Перечитайте.
минус вам.
кармодрочер
Господа спасибо за ответы сделал так(тока так получилось):
Удалил из sudoers свои записи.
В свойствах кнопки прописал вот такую команду gksu /etc/init.d/apache2 restart и все заработало.
Если gksu то добавлять моего пользователя в другие группы не надо.(пробовал разные но на результат не влияет)
Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.
Еще раз спасибо.
Да, никто вроде не говорил иначе. В другие группы добавлять надо для gksudo.Если gksu то добавлять моего пользователя в другие группы не надо.(пробовал разные но на результат не влияет)
Да, это я тоже упомянул.Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.
Я и отвечаю, что надо добавить юзера к группе sudo (это и даст необходимые права)
идиотизм - давать НЕ НУЖНЫЕ права тем, кто в них не нуждается.
и использовать gksudo (т. к. с sudo по-хорошему не получится, пароль будет запрашиваться хз где)
вы идиот? как оно может запрашивать пароль, если там ясно написано: NOPASSWD, ещё и БОЛЬШИМИ буквами, чтоб и вы в т.ч. видели!
или же просто использовать gksu. Перечитайте.
на кой хрен ваще нужно GTK на сервере? там и иксов-то в подавляющем числе случаев нет... Эх... что читать ваш бред, оторванный от реальности?
Только при первом запуске при нажатии на эту кнопку требует ввести пароль, но меня это вполне устраивает тем более у меня комп днями не выключается.
да... ну пишите дальше.
вы сами-то поняли, ЧТО вы сделали??