Есть простенький скриптец:
gate> less test.sh
#!/bin/sh
outer_if_out=`ipfw show 20 | awk '{print $3}'`
echo $outer_if_outС суид-битом:
gate> ll test.sh
-r-sr-xr-x 1 root wheel 77 11 БРТ 18:43 test.shАн нихрена не работает:
gate> ./test.sh
ipfw: socket: Operation not permittedПод рутом - ок:
gate> su
Password:
gate# ./test.sh
401012293Спасайте. Тупой я сегодня :((
>Есть простенький скриптец:
>gate> less test.sh
>#!/bin/sh
>outer_if_out=`ipfw show 20 | awk '{print
>$3}'`
>echo $outer_if_out
>
>С суид-битом:
>gate> ll test.sh
>-r-sr-xr-x 1 root wheel
> 77 11 БРТ 18:43
>test.sh
>
>Ан нихрена не работает:
>gate> ./test.sh
>ipfw: socket: Operation not permitted
>
>Под рутом - ок:
>gate> su
>Password:
>gate# ./test.sh
>401012293
>
>Спасайте. Тупой я сегодня :((и я :) а что ipfw от этого станет suid'ным?
>и я :) а что ipfw
>от этого станет suid'ным?Так ведь его (ipfw) вызывает скрипт, обладающий рутовыми правами...Ему (скрипту), вроде, все можно :) И форчить ipfw он должен, по-моему мнению, с рутовыми правами...
Видимо, оно (мое мнение) все-же неверное...Неужто ipfw придется suid'ить?
[Ушел готовить бэкап, чтобы легче было отхаченный сервер подымать]
>Так ведь его (ipfw) вызывает скрипт,
>обладающий рутовыми правами...Ему (скрипту), вроде,
>все можно :) И форчить
>ipfw он должен, по-моему мнению,
>с рутовыми правами...
>Видимо, оно (мое мнение) все-же неверное...
Nevernoe. I vi zrya proignorirovali moy otvet. Root-ovimi pravami,a tochnee pravami owner-a scripta, u kotorovogo ustanovlen SUID (sticky) bit , pol'zuetsya tol'ko tekuschiy protses, a vse chto on fork-aet i exec-aet, imeet prava pol'zovatelya, ego zapustivshego. Poetomu vihod - v C-shnoy proge zapustit' setuid(0), a zatem vipolnit' funktsiyu exec. Estestvenno, nuzhni elementarnie znaiya kak eto sdelat' pravil'no. Naprime v vashem sluchae mozhno tak:exec("/bin/sh","/bin/sh","-c","ipfw......",NULL);
>
>Неужто ipfw придется suid'ить?
Mne bi ne prishlos'... ;-)
За Ваш ответ спасибо - я его не проигнорировал, а ушел тестить. Работает :)
>Есть простенький скриптец:
>gate> less test.sh
>#!/bin/sh
>outer_if_out=`ipfw show 20 | awk '{print
>$3}'`
>echo $outer_if_out
>
>С суид-битом:
>gate> ll test.sh
>-r-sr-xr-x 1 root wheel
> 77 11 БРТ 18:43
>test.sh
>
>Ан нихрена не работает:
>gate> ./test.sh
>ipfw: socket: Operation not permitted
>
>Под рутом - ок:
>gate> su
>Password:
>gate# ./test.sh
>401012293
>
>Спасайте. Тупой я сегодня :((
U menya bilo chto-to tipa. Vozmozhno est' metodi poluchshe, no ya vikrutilsya napisaniem progi na C://name: tst.c, permission: r-sr-xr-x
//compile gcc -o tst tst.c
main() {
setuid(0);
execl("./test.sh","./test.h",NULL);
}
>Есть простенький скриптец:
>gate> less test.sh
>#!/bin/sh
>-r-sr-xr-x 1 root wheelА с каких пор в FreeBSD отменили ограничение на работу суидных скриптов ?
>А с каких пор в FreeBSD
>отменили ограничение на работу
>суидных скриптов ?А оно есть? Если можно, поподробнее...