The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как запускать на перле скрипты с правами рута?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 07-Ноя-03, 20:14  (MSK)
Вообщем такая задача, в ЦГИ-БИН сидит программа, которая даёт информацию о работе сервера, но я немогу запускать такие вещи как ipfw, т.к. апач запущен с правами apache, а не рут. Есть ли возможность безопасно получать для запуска программы права рута?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как запускать на перле скрипты с правами рута?"
Сообщение от 1 Искать по авторуВ закладки on 08-Ноя-03, 18:09  (MSK)
sudo
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 09-Ноя-03, 02:22  (MSK)
>sudo


Но sudo требует пароль для того, чтоб запустить что-то... А если я прямо в скрипте напишу пароль - это будет уязвимостью.. :(

Может кто-нить написать пару строк примера, как такие вещи далаются?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 09-Ноя-03, 02:49  (MSK)
Вообщем написал скрипт, поставил ему права 104775 owner root.
В sudoers написал:
www  ALL=/usr/local/apache/cgi-bin/myscript
Но он не запускается, пишет: can't do setuid
Где я ошибся?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как запускать на перле скрипты с правами рута?"
Сообщение от Soldier Искать по авторуВ закладки on 09-Ноя-03, 07:25  (MSK)
>Вообщем написал скрипт, поставил ему права 104775 owner root.
>В sudoers написал:
>www  ALL=/usr/local/apache/cgi-bin/myscript
>Но он не запускается, пишет: can't do setuid
>Где я ошибся?


Может запускаете:
/usr/local/apache/cgi-bin/myscript,

вместо

sudo /usr/local/apache/cgi-bin/myscript

???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 09-Ноя-03, 19:07  (MSK)
>Может запускаете:
>/usr/local/apache/cgi-bin/myscript,
>
>вместо
>
>sudo /usr/local/apache/cgi-bin/myscript
>
>???

Я запускаю /usr/local/apache/cgi-bin/myscript, а sudo он сам должен делать, т.к. set user ID on execution стоит. Я же немогу заставить апач набирать пароль.. :)
Во всяком случае на Линухе компилированные программы так запускались.
Сейчас скрипт написан на перле и под БСД. Но думаю разницы никакой не должно быть...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как запускать на перле скрипты с правами рута?"
Сообщение от Soldier Искать по авторуВ закладки on 10-Ноя-03, 07:00  (MSK)
>>Может запускаете:
>>/usr/local/apache/cgi-bin/myscript,
>>
>>вместо
>>
>>sudo /usr/local/apache/cgi-bin/myscript
>>
>>???
>
>Я запускаю /usr/local/apache/cgi-bin/myscript, а sudo он сам должен делать, т.к. set user
>ID on execution стоит. Я же немогу заставить апач набирать пароль..
>:)

Что-то новенькое... Это с какой такой большой радости он САМ должен sudo делать. Типа исскуственный интелект что-ли :)))

>Во всяком случае на Линухе компилированные программы так запускались.
>Сейчас скрипт написан на перле и под БСД. Но думаю разницы никакой
>не должно быть...


Может стоит внимательнее доки про SUID бит и про sudo почитать?

В sudoers прописать:

www  ALL = NOPASSWD: /usr/local/apache/cgi-bin/myscript

Тогда никто паролей спрашивать не будет.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 11-Ноя-03, 18:51  (MSK)
>>>Может запускаете:
>>>/usr/local/apache/cgi-bin/myscript,
>>>
>>>вместо
>>>
>>>sudo /usr/local/apache/cgi-bin/myscript
>>>
>>>???
>>
>>Я запускаю /usr/local/apache/cgi-bin/myscript, а sudo он сам должен делать, т.к. set user
>>ID on execution стоит. Я же немогу заставить апач набирать пароль..
>>:)
>
>Что-то новенькое... Это с какой такой большой радости он САМ должен sudo
>делать. Типа исскуственный интелект что-ли :)))

Разобрался, со скриптами так нельзя, только компилированые проги так будут работать. :(

>>Во всяком случае на Линухе компилированные программы так запускались.
>>Сейчас скрипт написан на перле и под БСД. Но думаю разницы никакой
>>не должно быть...
>Может стоит внимательнее доки про SUID бит и про sudo почитать?
>
>В sudoers прописать:
>
>www  ALL = NOPASSWD: /usr/local/apache/cgi-bin/myscript
>
>Тогда никто паролей спрашивать не будет.

А как апачу сообщить, что этот скрипт должен запускаться через sudo?
Пробовал сделать так, чтоб один скрипт запускал другой через sudo - в шелле работает, в апаче - нет. В логах - ничего информативного.. :(

Я уверен, что кто-нибдь сталкивался с такими задачами, помогите, плз!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Как запускать на перле скрипты с правами рута?"
Сообщение от Soldier Искать по авторуВ закладки on 11-Ноя-03, 19:37  (MSK)
>>Может стоит внимательнее доки про SUID бит и про sudo почитать?
Это замечание остается в силе :)))

>А как апачу сообщить, что этот скрипт должен запускаться через sudo?
Да не надо ему ничего сообщать, все равно не поймет :)))

>Пробовал сделать так, чтоб один скрипт запускал другой через sudo - в
>шелле работает, в апаче - нет. В логах - ничего информативного..
>:(
>

В первом скрипте указан полный путь к sudo? (например /usr/bin/sudo)

>Я уверен, что кто-нибдь сталкивался с такими задачами, помогите, плз!

Пример (без sudo):

//suid.c
#include <unistd.h>

main() {
setuid(0); //или setuid(uid);
execl("/bin/cat","/bin/cat","/etc/shadow",NULL);
}

Закомпилить gcc -o suid suid.c
Сделать chmod 4770 suid
Сделать chown root:group suid
Теперь достаточно быть в группе group, чтобы просмотреть содержимое /etc/shadow

Если поможет, то буду рад, если нет, то sorry :)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Как запускать на перле скрипты с правами рута?"
Сообщение от NetKnight emailИскать по авторуВ закладки on 11-Ноя-03, 22:43  (MSK)
>>>Может стоит внимательнее доки про SUID бит и про sudo почитать?
>Это замечание остается в силе :)))

Читал! Не единажды!

>>А как апачу сообщить, что этот скрипт должен запускаться через sudo?
>Да не надо ему ничего сообщать, все равно не поймет :)))

И я об этом :)

>>Пробовал сделать так, чтоб один скрипт запускал другой через sudo - в
>>шелле работает, в апаче - нет. В логах - ничего информативного..
>>:(
>В первом скрипте указан полный путь к sudo? (например /usr/bin/sudo)

Вот! В этом заключалась проблема! Спасибо! Я думал это не критично.. ;(

>Пример (без sudo):
>
>//suid.c
>#include <unistd.h>
>
>main() {
> setuid(0); //или setuid(uid);
> execl("/bin/cat","/bin/cat","/etc/shadow",NULL);
>}
>
>Закомпилить gcc -o suid suid.c
>Сделать chmod 4770 suid
>Сделать chown root:group suid
>Теперь достаточно быть в группе group, чтобы просмотреть содержимое /etc/shadow
>
>Если поможет, то буду рад, если нет, то sorry :)))

Так я тоже так делал, но мне надо это на перле! А в мане написано, что только для бинарников SUID работает.

Проблемма решена! Спасибо :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Как запускать на перле скрипты с правами рута?"
Сообщение от Soldier Искать по авторуВ закладки on 12-Ноя-03, 06:57  (MSK)
>>Пример (без sudo):
>>
>>//suid.c
>>#include <unistd.h>
>>
>>main() {
>> setuid(0); //или setuid(uid);
>> execl("/bin/cat","/bin/cat","/etc/shadow",NULL);
>>}
>>
>>Закомпилить gcc -o suid suid.c
>>Сделать chmod 4770 suid
>>Сделать chown root:group suid
>>Теперь достаточно быть в группе group, чтобы просмотреть содержимое /etc/shadow
>>
>>Если поможет, то буду рад, если нет, то sorry :)))
>
>Так я тоже так делал, но мне надо это на перле! А
>в мане написано, что только для бинарников SUID работает.
>

Имелось ввиду вместо /bin/cat написать /usr/bin/perl,  а вместо /etc/shadow путь к перловому скрипту. sudo по сути делает примерно примерно тоже самое - устанавливает    setuid(uid) и вызывает соответствующую прогу через exec, причем вызываемой программе устанавливать SUID совсем не нужно.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Как запускать на перле скрипты с правами рута?"
Сообщение от A.Shikoff emailИскать по авторуВ закладки on 27-Ноя-03, 11:01  (MSK)

>Я же немогу заставить апач набирать пароль..

В sudo есть такой параметр, как NOPASSWD.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Как запускать на перле скрипты с правами рута?"
Сообщение от Xela emailИскать по авторуВ закладки on 12-Ноя-03, 14:39  (MSK)
Простите, а чем вам не угодил suexec в Апаче?
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру