Автор Тема: Изпълняване на скрипт като root  (Прочетена 5329 пъти)

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Имам един скрипт който взима от командния ред параметър - IP и по него прави tcpdump за това IP. Искам да го стартирам като нормален потребител, но tcpdump иска root. Пробвах да го направя suid root (chmod 4755), но като се стартира получавам:
tcpdump: socket: Operation not permitted
Мислех си да го направя със sudo. Обаче tcpdump все се стартира с различен параметър, не мога да пиша в /etc/sudoers нов запис за всяко от възможните IPта..
Някакви идеи?
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Изпълняване на скрипт като root
« Отговор #1 -: Jun 03, 2005, 12:59 »
не би ли трябвало да има и SGID, т.е.
chmod 6755
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #2 -: Jun 03, 2005, 13:32 »
Пак получавам
tcpdump: socket: Operation not permitted
Пробвах и с chmod a+s .. същото.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Изпълняване на скрипт като root
« Отговор #3 -: Jun 03, 2005, 13:57 »
При мен:

kernel 2.6.10, tcpdump version 3.8.3, libpcap version 0.7.2

6755 tcpdump

няма проблеми с дъмпването от нормален потребител ...

Какви параметри пускаш на tcpdump?
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #4 -: Jun 03, 2005, 14:30 »
Викам го така:
system("/usr/sbin/tcpdump -nqt -i eth1 dst host  $ARGV[0]");
Става дума за Perl скрипт като $ARGV[0] е първия параметър, подаден от командния ред. Ако го пусна с потребител root, работи нормално.
tcpdump version 3.8.3 libpcap version 0.8.3
2.4.22 kernel
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Изпълняване на скрипт като root
« Отговор #5 -: Jun 03, 2005, 14:36 »
Примерен код
vladsun@levski:~$ /usr/local/sbin/tcpdump -nqt -i eth1 dst host 192.168.2.107
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 68 bytes
IP 195.149.248.137.80 > 192.168.2.107.3995: tcp 1460
IP 195.149.248.137.80 > 192.168.2.107.3990: tcp 1460
IP 195.149.248.137.80 > 192.168.2.107.3990: tcp 1460
IP 195.149.248.137.80 > 192.168.2.107.3995: tcp 1460
IP 195.149.248.137.80 > 192.168.2.107.3990: tcp 1460

... и с тези параметри нямам проблеми.

Може да ти звучи глупаво, ама айде постни резултата от
ls -l tcpdump '<img'>

Примерен код
ls -l /usr/local/sbin/tcpdump
-rwsr-sr-x    1 root     root       511978 Apr 26  2004 /usr/local/sbin/tcpdump*
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #6 -: Jun 03, 2005, 14:43 »
ls -l `which tcpdump`
-rwxr-xr-x    1 root     bin        539096 Apr  2  2004 usr/sbin/tcpdump*
Мойто няма suid root на binary-то. Мдаа, май от това ще е.. Абе то нормално ли е тоя suid там, та всеки да гледа минаващите пакети...
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Изпълняване на скрипт като root
« Отговор #7 -: Jun 03, 2005, 14:43 »
май проблема е и в system()

пробвай само
Примерен код
'/usr/sbin/tcpdump -nqt -i eth1 dst host  $ARGV[0]'
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Изпълняване на скрипт като root
« Отговор #8 -: Jun 03, 2005, 14:44 »
Цитат (ivanatora @ Юни 03 2005,14:43)
Абе то нормално ли е тоя suid там, та всеки да гледа минаващите пакети...

Еми не е '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #9 -: Jun 03, 2005, 15:03 »
system()-a май си е наред. Измислих едно решение, ама е хамалогия. Записвам във външен файл IPто, на което ще се пуска tcpdump и изпълнявам друг скрипт със sudo (тук вече не му подавам параметри), който взима IPто от временния файл и си върши работата.
Трябва да има някакъв по-елегентен начин, който не включва +s на tcpdump binary-то '<img'>
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #10 -: Jun 03, 2005, 21:26 »
Според мене sudo е добро решение '<img'>
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #11 -: Jun 04, 2005, 11:27 »
Ами с една дума - стана '<img'>
Проблема е бил в задклавиатурния драйвър '<img'> Мислех че в /etc/sudoers заедно с командата трябва да напиша и параметрите към нея, пък то не било задължително.
Активен

Йордан

  • Напреднали
  • *****
  • Публикации: 1451
  • Distribution: Ubuntu / Gentoo
  • Window Manager: Gnome
  • не е важно колко ти е голяма пишката, а какво можеш с нея
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #12 -: Jun 04, 2005, 14:07 »
докакто съм чел синтаксиса е следния...
потребител_на_който_даваме_права машина_на_която_ще_се_изпълнява=(като_кой_потребител_ще_се_изпълнява) изброени_файловете_до_които_ще_дадем_достъп

П.П. параметрите не се въвеждат т.к. даваме права към файл а не към параметрите към него
Активен

Всеки пост - отговор на въпрос !!!

Йордан Георгиев
http://ygeorgiev.net/

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Изпълняване на скрипт като root
« Отговор #13 -: Jun 04, 2005, 21:30 »
Ами така са горе-долу. Мислех че трябва да се укажат и параметрите, един вид за повече сигурност '<img'>
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Кубунту стандартна парола за root
Настройка на програми
doberman081 4 1830 Последна публикация Apr 21, 2006, 11:49
от MarineForce
Проблем с root логване...
Настройка на програми
Karadja 1 1883 Последна публикация May 16, 2006, 23:00
от GoodT
Cannot excute root
Настройка на програми
antivirys 0 1507 Последна публикация Jun 08, 2006, 23:40
от antivirys
Root-er
Настройка на програми
hatlan 6 2582 Последна публикация Jul 02, 2006, 18:20
от vstoykov
Как да влезна като root?
Настройка на програми
dreven1990 2 1317 Последна публикация Feb 03, 2007, 22:35
от alabal