The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"скрипт + программа с setuid"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"скрипт + программа с setuid"  +/
Сообщение от microbash (??) on 01-Июл-10, 10:23 
Добрый всем день!

Пишу следующую конструкцию:
есть скриптик на перл, работает из под непривилегированного юзера.
он должен в свою очередь вызвать скрипт с параметром, изменяющим правило в ipfw.
нашел по сайту, что это можно реализовать при помощи дополнительной проги на С.

вот что вышло:

#include <unistd.h>
main(int argc, char *argv[])
{
setuid(0);
setgid(0);
execl("/usr/local/etc/scripts/firewall/change_pop.sh","",argv[1],NULL);
return 0;
}


#change_pop.sh
#!/bin/sh

NEW_IP_ADR=$1
/usr/bin/sed "s|IP_ADR=0.0.0.0|IP_ADR=$NEW_IP_ADR|g" /usr/local/etc/scripts/firewall/ipfw-default.conf > /usr/local/etc/scripts/firewall/ipfw.conf
/usr/sbin/chown root:wheel /usr/local/etc/scripts/firewall/ipfw.conf
/bin/chmod 755 /usr/local/etc/scripts/firewall/ipfw.conf
/usr/local/etc/scripts/firewall/ipfw.conf > /dev/null 2>&1

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

$ ./change_pop 10.10.10.10
chown: /usr/local/etc/scripts/firewall/ipfw.conf: Operation not permitted

тоесть, не выдались мне права рутовые...

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "скрипт + программа с setuid"  +/
Сообщение от phpcoder email(ok) on 01-Июл-10, 11:21 
>тоесть, не выдались мне права рутовые...

Вы SUID/SGID биты на бинарник поставили?

(Плюс код возврата ф-ций setuid()/setgid() нужно проверять.)


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "скрипт + программа с setuid"  +/
Сообщение от microbash (??) on 01-Июл-10, 15:00 
>>тоесть, не выдались мне права рутовые...
>
>Вы SUID/SGID биты на бинарник поставили?
>
>(Плюс код возврата ф-ций setuid()/setgid() нужно проверять.)

Угумс, выставил биты на бинарники - се заработало! )
СПА!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "скрипт + программа с setuid"  +/
Сообщение от Andrey Mitrofanov on 01-Июл-10, 18:06 
>вот что вышло:
>
>#include <unistd.h>
>main(int argc, char *argv[])
>{
>setuid(0);
>setgid(0);
>execl("/usr/local/etc/scripts/firewall/change_pop.sh","",argv[1],NULL);

Кстати, _почти %) такой бинарник у Вас в системе скорее всего(?) уже есть. С кучей достоинств (собирать не надо, при пересборке про биты setuid вспоминать, обновления безопасности "делают где надо") и одним небольшим недостатком - надо освоить "неочевидный" с первого взляда конфиг и страницу man существенно длинне этой фунции main() на неместном(?) языке.

2ALL: Товарищи, расскажем человеку, как этот "бинарник" называется или пусть помучается пока? :-D

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "скрипт + программа с setuid"  +/
Сообщение от allez (ok) on 01-Июл-10, 20:58 
>Кстати, _почти %) такой бинарник у Вас в системе скорее всего(?) уже
>есть. С кучей достоинств (собирать не надо, при пересборке про биты
>setuid вспоминать, обновления безопасности "делают где надо") и одним небольшим недостатком
>- надо освоить "неочевидный" с первого взляда конфиг и страницу man
>существенно длинне этой фунции main() на неместном(?) языке.
>
>2ALL: Товарищи, расскажем человеку, как этот "бинарник" называется или пусть помучается пока?
>:-D

Это который на "s" начинается и на "o" заканчивается? :-)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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