Автор Тема: За админите - "програмисти"  (Прочетена 3376 пъти)

HammerFall_

  • Напреднали
  • *****
  • Публикации: 67
    • Профил
    • WWW
Просто не можах да се сдържа, а и как да не публикувам това при условие, че е колкото смешно толкова и жалко. Случката не си я измислям и ми се случи преди няколко дена. Смешно - трагичното е как един системен администратор от малък провинциален град, (в който съм роден аз) се опитва да покаже знания в областта на програмирането. И така, бяхме седнали в едно заведение и почнахме да говорим естествено за Линукс, като в един момент въпросния човек ми задава въпросът: "Ти знаеш ли функцията 'ФОРКЕ'? Знаеш ли какво прави?!?!" При което реакцията от моя страна беше голямо изненадване. Все пак за първи път чувах такава функция и се опитвах да направя асоциация с нещо сходно, но преди да отговоря веднага бях стопиран с въпрос: "Как не знаеш 'ФОРКЕ', като програмираш под Линукс?!?! Аз как я знам, а и ако знаеш колко шелове съм хакнал с нея..." Последва веднага от моя страна корекция, че функцията е fork(void) /*'ФОРК'*/, но така и не разбрах как с тази функция се хакват Shell-ове. Незнам защо, но системните администратори в големите градове /*поне тези които познавам*/ си казват честно, че от програмиране не разбират и не се опитват да спорят за неща, които не разбират, така както аз не споря за неща от тяхната област.
Това не е с цел да обидя някой. Просто ми се стори адски смешно, а и най-вече това до къде може да доведе незнанието на хората с голямо желание да се изтъкнат пред някой. Това доста често ми се случва в това градче.
А какво прави fork? Може да го видите от man fork. А ето и самата страница:
Цитат

NAME
       fork - create a child process

SYNOPSIS
       #include
       #include

       pid_t fork(void);

DESCRIPTION
       fork  creates a child process that differs from the parent process only in its PID and PPID, and in the fact that resource utilizations are set to 0.  File
       locks and pending signals are not inherited.

       Under Linux, fork is implemented using copy-on-write pages, so the only penalty incurred by fork is the time and memory required to duplicate the  parent's
       page tables, and to create a unique task structure for the child.

RETURN VALUE
       On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution.  On fail-
       ure, a -1 will be returned in the parent's context, no child process will be created, and errno will be set appropriately.

ERRORS
       EAGAIN fork cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child.

       EAGAIN It was not possible to create a new process because the caller's RLIMIT_NPROC resource limit was encountered.  To exceed  this  limit,  the  process
              must have either the CAP_SYS_ADMIN or the CAP_SYS_RESOURCE capability.

       ENOMEM fork failed to allocate the necessary kernel structures because memory is tight.

CONFORMING TO
       The fork call conforms to SVr4, SVID, POSIX, X/OPEN, BSD 4.3.

Ако някой може да ми обясни как само с тази функция се хакват shell-ове ще съм му много благодарен. И аз поне ще науча нещо.
Активен

Поздрави!!!
Григор Лекаров
------------------
Gentoo Linux/OpenBSD/Solaris*

nix

  • Напреднали
  • *****
  • Публикации: 442
    • Профил
За админите - "програмисти"
« Отговор #1 -: Aug 22, 2005, 15:16 »
Може да бъде доведена системата до колизия ако се пусне постоянно генериане на чаилд процес, който заема постоянно PID и когато се изчерпат PID/краино множество/ машината прави боом'<img'>
Info:
http://en.wikipedia.org/wiki/Fork_(computing)
http://en.wikipedia.org/wiki/Fork_bomb
/etc/security/limits.conf
Активен

DEBIAN GNU/Linux SID/kernel-2.6.16

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
За админите - "програмисти"
« Отговор #2 -: Aug 22, 2005, 17:16 »
fork bomb => resource exhautation => crash и евентуалната надежда че може някъде да се получи buffer overflow или машината да остане в някакво несигурно състояние от където да се експлоитне нещо.
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

vic_semionov

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
    • WWW
За админите - "програмисти"
« Отговор #3 -: Aug 22, 2005, 17:48 »
@HammerFall: Приятелю, и сред програмистите го има тоя момент, не само сред админите. Някои от тях също са гола вода, а летят у небесата и пърхат с криленца '<img'>
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
За админите - "програмисти"
« Отговор #4 -: Aug 22, 2005, 18:25 »
в интерес на истината всеки от админите които познавам има известни познания в областта на програмирането. Просто си трябва. Много полесно е да си нахвърляш някое малко инструментче за определена задача отколкото да я вършиш всеки път на ръка ...
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
За админите - "програмисти"
« Отговор #5 -: Aug 22, 2005, 20:21 »
До сега не съм видял чист администратор-ветеран. Всичките успяват да са човека оркестър - като трябва администрира като трябва програмира.....

п.с. Чувал съм че има ...
Активен

  • Гост
За админите - "програмисти"
« Отговор #6 -: Aug 23, 2005, 09:30 »
При някоя бъгава дистрибуция като Линукс не се и очудвам да работи това fork_bomb. Всяка добра и ценяща сигурността си система има ограничение за това колко процеса може да създаде един потребител. На твоето приятелче админче можеш да кажеш само че ако направи това на OpenBSD ще трябва да го направи под root. Е да ама root кога вземе ела ми се обади. Честно казано наистина като казва vic_semionov "летиш у небесата" ако имаш на предвид само Линукс. Просто си е ориентирал към програмиране за погрешна ОС.
Активен

gog

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
За админите - "програмисти"
« Отговор #7 -: Aug 23, 2005, 14:58 »
Цитат
Всяка добра и ценяща сигурността си система има ограничение за това колко процеса може да създаде един потребител

хъм
сигурен ли си че е ограничено
за freebsd /ver 5.4/ по подразбиране е unlimited
колко е ограничението при OpenBSD ?
Активен

vic_semionov

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
    • WWW
За админите - "програмисти"
« Отговор #8 -: Aug 23, 2005, 15:33 »
Цитат (gog @ Авг. 23 2005,15:58)
Цитат
Всяка добра и ценяща сигурността си система има ограничение за това колко процеса може да създаде един потребител

хъм
сигурен ли си че е ограничено
за freebsd /ver 5.4/ по подразбиране е unlimited
колко е ограничението при OpenBSD ?

Ограничено е (във FreeBSD) от kern.maxprocperuid, което май зависи от maxusers, а то по default е динамично, но при мене е около 3600 процеса на юзер.

Току що го пробвах на 5.4. Пуснах forkbomb -f, засече ми звука за половин секунда и след това се оправи и си бачка въпреки тия 3600 процеса.

EDIT: ограничението е от sysctl, не от login.conf
Активен

gog

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
За админите - "програмисти"
« Отговор #9 -: Aug 23, 2005, 15:54 »
благодаря vic_semionov,
забележката беше съвсем правилна
лимитите може да се проверят още и с командата limits

какво съм гледал не е ясно
Активен

  • Гост
За админите - "програмисти"
« Отговор #10 -: Aug 23, 2005, 17:39 »
Ами gog представи си щом на FreeBSD е ограничено, какво е на OpenBSD. Просто самата ОС не ти позволява да стартираш толкова процеси. Не казвам че това е най-сигурната ОС, но все пак доста се работи върху това. А що се отнася до Линукс увисва като Windows след 4 часа брутална работа  '<img'>  '<img'>  '<img'>  Изглежда двете ОС доста си приличат. Сега разбирам и защо се мразят. Както би казал един приятел "Конкуренция Батка...". Ако Windows-a се ползва нормално като хората и той ще работи много добре. А и все пак не е толкова труден за конфигуриране, все пак и там си има конфиурационни файлове като в UNIX-а. Поразровете се и ще намерите доста сходни директории и файлове, че даже синтаксиса им е един и същ. Общо взето всички са грабели с пълни шепи от UNIX-a ама сега всеки се прави на "ни лук ял, ни лук мирисал". Само където Microsoft разправят всеки път, че за сефте чуват за UNIX, а другите създадоха GNU и сега се опитват да заблуждават с "Това не е UNIX". Тук не намесвам обаче SCO, понеже и те са една от компаниите, които се опитват по лесен начин да си докарат много пари. В момента има само една ОС която пази идеята на първоизточника и това е *BSD. Ако не вярвате поразровете се и ще намерите кое от къде е тръгнало.
Активен

  • Гост
За админите - "програмисти"
« Отговор #11 -: Aug 23, 2005, 17:51 »
Между другото HammerFall_ не се подценявай. Просто не си изпбрал правилната ОС. Иначе разсъжденията ти са много верни. А иначе познавам админи, които преди това са били програмисти и са много в час с нещата. Просто това твое приятелче явно и идея си няма от програмиране. Съмнявам се този дали някога е писал нещо повече от "Hello world." което го има във всяка книга за начинаещи и дали е разбирал колко мощен компилатор е gcc /*за мен cc*/ Просто се опитва да се прави на умен, а това явление не е само при админите, а и при обикновенните потребители. Поразрови се из форума и ще откриеш много такива "умни" постове. От навярно бъдещи админи  '<img'>  '<img'>  '<img'> А нищо чудно после да вземат да станат и програмисти. Едно е да четеш само код, а друго е да го пишеш, така както и има голяма разлика да приказваш, че не що е много лесно да се направи, а изобщо да не си се хващал да го направиш.
И между другото Let The HammerFall  '<img'>  '<img'>  '<img'>
Активен

nix

  • Напреднали
  • *****
  • Публикации: 442
    • Профил
За админите - "програмисти"
« Отговор #12 -: Aug 26, 2005, 17:29 »
Цитат (Guest @ Авг. 23 2005,09:30)
При някоя бъгава дистрибуция като Линукс не се и очудвам да работи това fork_bomb. Всяка добра и ценяща сигурността си система има ограничение за това колко процеса може да създаде един потребител. На твоето приятелче админче можеш да кажеш само че ако направи това на OpenBSD ще трябва да го направи под root. Е да ама root кога вземе ела ми се обади. Честно казано наистина като казва vic_semionov "летиш у небесата" ако имаш на предвид само Линукс. Просто си е ориентирал към програмиране за погрешна ОС.

Млади момко бе зъби ти летиш в небесата!
Една система/POSIX,...etc/ е сигурна точно толкова колкото е старателен нейният администратор,така че тези пропаганда ходи да я размяташ на ученичките в началното училище!
Активен

DEBIAN GNU/Linux SID/kernel-2.6.16

  • Гост
За админите - "програмисти"
« Отговор #13 -: Aug 26, 2005, 18:43 »
Този OpenBSD ме кефи ;-) Сигурно е админчето от прованса. Какъв юнак и как ги разбира работите, бравос ! На такива кадри социалните помощи са им много.
Активен

  • Гост
За админите - "програмисти"
« Отговор #14 -: Aug 27, 2005, 18:58 »
Ок, кефете се на линукса си и форк бомбите. Аз пък се кефя на BSD-то и че изобщо нямам грижи с такива смешни програмки.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
"Grub" sled preinstalacia na Windows
Настройка на програми
merman 1 4696 Последна публикация May 25, 2003, 11:27
от wandererbg
HDD ext3 recover, "Stellar Phoenix Linux" ??
Настройка на хардуер
help40 3 6799 Последна публикация Sep 20, 2012, 21:51
от Acho
"paskal case" / "camel case"
Общ форум
Apache 3 8358 Последна публикация Aug 11, 2006, 10:01
от ivak
Проблем с "struct cdev" и "struct semaphore"
Общ форум
halturata 22 13900 Последна публикация Aug 14, 2007, 17:31
от tarator
Проблем с "reboot", "halt" и т.н.
Настройка на програми
turboshark 5 8262 Последна публикация Sep 22, 2007, 00:13
от turboshark