shell kill machine

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Květen 16 14:52:03 CEST 2000


On Tue, 16 May 2000, Jan ' Kozo ' Vajda wrote:

> mohol by  mi niekto, kto je zbehly v shell programingu vysvetlit, preco mi
> nasledujuca postupnost znakov
> 
> :(){ :|:&};:
> 
> napisana z cmd-line bash zatuhne masinu ? 

Budu predpokladat, ze to shell nejak rozparsuje (coz muze byt zavisle
(ne)pritomnosti mezer na ruznych mistech apod.) Pak je to ekvivalentni
kodu...

  abc()
  {
    abc | abc &
  }
  abc

Tedy nadefinujeme shellovou funkci, ktera pracuje tak, ze sama sebe
rekurzivne vyvola dvakrat, a to navic na pozadi, tj. v jinem procesu (lepe
receno ve dvou novych procesech), a pak tu funkci spustime. Takze takova
forkbomba. Prepsano do C je to neco takovehoto (zkousejte pouze na
vlastni nebezpeci):

  #include <unistd.h>
  int main()
  {
    for (;;) {
      if (!fork()) continue;
      if (!fork()) continue;
      return 0;
    }
  }

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux