Může mi někdo prosím vysvětlit, co provede ten příkaz "echo ja -vul /| tr haleluja RTFMrfrm" ? Dík.
Podivej se, co to vrati, kdyz pustis jen
echo ja -vul /| tr haleluja RTFMrfrm
tedy bez tech zpetnych apostrofu (buhvi, jak se to opravdu jmenuje, proste ` ). To se jenom vypise ten prikaz, co by se provedl, kdybys tam ty apostrofy napsal.
(Strucne, smaze to bez ptani rekurzivne vsechny soubory v / a vsech podadresarich a k tomu o tom poda jeste podrobny vypis. Samo, ze kdyz nejsi root, tak si zdemolujes akorat vlastni data, korektne nainstalovany system by to mel v pohode prezit.)
... co to udela.
mozna by to slo vyzkouset v chrootovanym prostredi ...
Zdenek
nemelo by to byt spis eval `echo ja -vul /| tr haleluja RTFMrfrm` ? ;)
Alespoň bash to zkousne i bez eval. Lze mírumilovně vyzkoušet na `echo "yes"`. :-)
no jooo, ale to jenom zobrazi :D my chceme spustit, ne? ;)
Zkoušel jsi to? Mně to vypisuje samá y. ;-) A IMO se to tak chová spráně. ``, resp. $() způsobí, že výstup programu jakoby byl napsán v shellu a odentrován.
Řekněte mi, prosím už někdo konečně a jasně, proč by měly příkazy 'echo' a 'tr' zdemolovat systém. Dík J2.
no protoze zpetne apostrofy jsou metaznaky shellu, ktere mu rikaji:
hele spust vsechno, co je mezi `` a veskery ziskany stdout pak interpretuj jako dalsi rikazy shellu.
napr:
`echo id`
je to same jako proste
id
Obecne je s tim docela hodne srandy. Viz nedavno odhaleny fatalni nedostatek v xpdf.
Mily uzivatel si mohl prohlizet pdf soubor a tuknout pritom na odkaz (url). System spustil prohlizec s url v parametru. Ovsem skodoliby tvurce dokumentu vytvoril odkaz ve tvaru:
http://www.whatever.org/`rm -rf ~/ > /dev/null`.
Uzivatel se pak mohl jen divit, kam se podel jeho $HOME.