Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в Jun 03, 2005, 12:40 Имам един скрипт който взима от командния ред параметър - IP и по него прави tcpdump за това IP. Искам да го стартирам като нормален потребител, но tcpdump иска root. Пробвах да го направя suid root (chmod 4755), но като се стартира получавам:
tcpdump: socket: Operation not permitted Мислех си да го направя със sudo. Обаче tcpdump все се стартира с различен параметър, не мога да пиша в /etc/sudoers нов запис за всяко от възможните IPта.. Някакви идеи? Титла: Изпълняване на скрипт като root Публикувано от: VladSun в Jun 03, 2005, 12:59 не би ли трябвало да има и SGID, т.е.
chmod 6755 Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в Jun 03, 2005, 13:32 Пак получавам
tcpdump: socket: Operation not permitted Пробвах и с chmod a+s .. същото. Титла: Изпълняване на скрипт като root Публикувано от: VladSun в Jun 03, 2005, 13:57 При мен:
kernel 2.6.10, tcpdump version 3.8.3, libpcap version 0.7.2 6755 tcpdump няма проблеми с дъмпването от нормален потребител ... Какви параметри пускаш на tcpdump? Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в 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 Титла: Изпълняване на скрипт като root Публикувано от: VladSun в Jun 03, 2005, 14:36
... и с тези параметри нямам проблеми. Може да ти звучи глупаво, ама айде постни резултата от ls -l tcpdump ![]()
Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в 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 там, та всеки да гледа минаващите пакети... Титла: Изпълняване на скрипт като root Публикувано от: VladSun в Jun 03, 2005, 14:43 май проблема е и в system()
пробвай само
Титла: Изпълняване на скрипт като root Публикувано от: VladSun в Jun 03, 2005, 14:44
Еми не е ![]() Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в Jun 03, 2005, 15:03 system()-a май си е наред. Измислих едно решение, ама е хамалогия. Записвам във външен файл IPто, на което ще се пуска tcpdump и изпълнявам друг скрипт със sudo (тук вече не му подавам параметри), който взима IPто от временния файл и си върши работата.
Трябва да има някакъв по-елегентен начин, който не включва +s на tcpdump binary-то ![]() Титла: Изпълняване на скрипт като root Публикувано от: Йордан в Jun 03, 2005, 21:26 Според мене sudo е добро решение
![]() Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в Jun 04, 2005, 11:27 Ами с една дума - стана
![]() Проблема е бил в задклавиатурния драйвър ![]() Титла: Изпълняване на скрипт като root Публикувано от: Йордан в Jun 04, 2005, 14:07 докакто съм чел синтаксиса е следния...
потребител_на_който_даваме_права машина_на_която_ще_се_изпълнява=(като_кой_потребител_ще_се_изпълнява) изброени_файловете_до_които_ще_дадем_достъп П.П. параметрите не се въвеждат т.к. даваме права към файл а не към параметрите към него Титла: Изпълняване на скрипт като root Публикувано от: ivanatora в Jun 04, 2005, 21:30 Ами така са горе-долу. Мислех че трябва да се укажат и параметрите, един вид за повече сигурност
![]() |